Author Topic: Home Game Server  (Read 574 times)

0 Members and 1 Guest are viewing this topic.

Offline Blakhart

  • Posts: 627
  • Reputation Power: 13
  • Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!
  • Newborn
    • View Profile
Home Game Server
« on: June 09, 2018, 01:39:23 AM »
An expose of my oldschool game servar is forthcoming. Suffice it to say, it is replete with oldschool server hardware, ie, dual cpus, scsi drives, offloading nic on the glorious 64bit pci-x bus you've never heard of before, ecc ram, etc etc.

I've carried this thing through several states/moves and I just can't see tossing it in the bin no matter how new hardware outclasses it. When I had the bandwidth, it hosted cs1.6, T1 Ultra, T2, T3, and it ran lag free. Likely because of the legendary floating point power of the original Athlon XP cpus. An Athlon XP would trounce any P4 in floating point, even the slowest XP chip.

Consider the Athlon XP as a slow revving big block that redlines at 5500 with 300 horsepower and 670 foot/pounds of torque, where floating point equates to torque, while the P4 architecture is reminiscent of a small block that can rev to 10k producing 700 horsepower and 400 foot pounds of torque.
Parts;
CaseEnlightPSUEnermax 360W ATX
CPUSAMD Athlon 1600 XP x 2https://en.wikipedia.org/wiki/Athlon#Athlon_XP/MPhttp://www.cpu-world.com/CPUs/K7/AMD-Athlon%20XP%201600+%20-%20AX1600DMT3C.html
HSFAMD S467 HSF with copper baseplate and skived aluminium fins.
MoboAsus A7M266-D Dual Socket 467 AMDhttp://soggi.org/motherboards/asus/A7M266-D.htmhttps://www.anandtech.com/show/645https://en.wikipedia.org/wiki/PCI-X

Ram2GB ECC DDRhttps://en.wikipedia.org/wiki/ECC_memory
NIC
Intel offloading server nichttps://en.wikipedia.org/wiki/TCP_offload_engine
SCSI HBA (Host Bus Adapter)Adaptec 39160 Dual Channelhttps://en.wikipedia.org/wiki/SCSIhttps://storage.microsemi.com/en-us/support/scsi/u160/asc-39160/
SCSI Driveshttps://www.seagate.com/support/internal-hard-drives/desktop-hard-drives/atlas/Various 10k and 15krpm drives
VideoIrrelevant, but I think it's a Matrox, haven't opened the box in a while.


I know you're drooling for pics so will get on that soon.Here's a vid of the glorious sound of scsi drives singing the song of their people to keep you occupied;

Offline Blakhart

  • Posts: 627
  • Reputation Power: 13
  • Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!
  • Newborn
    • View Profile
Re: Home Game Server
« Reply #1 on: June 09, 2018, 01:44:08 AM »
WTF has the forum done to my urls?

Offline JesusChrist

  • Posts: 533
  • Reputation Power: 11
  • JesusChrist is on the verge of being accepted.JesusChrist is on the verge of being accepted.JesusChrist is on the verge of being accepted.JesusChrist is on the verge of being accepted.JesusChrist is on the verge of being accepted.
  • " Super Admin "
    • View Profile
Re: Home Game Server
« Reply #2 on: June 10, 2018, 05:58:59 AM »
I manually copied the links and increased my forearm size by 50%. EEC Ram sounds awesome, even though I have just heard about it from your post, lol. The hard drive video has ridiculous noise though (broken hdd), I searched for a better one:


Still, noisy as hell. I actually just sold an old 640 GB HDD because it had a slight humming sound. I can't stand loud constant noises, so it's fucking impressive that it doesn't bother you. But if you're just hosting, maybe it's sitting in your garage or something. Funny thing is how fast those old SCSI hard drives are. I still have two 5k rpm hard drives, never used a SCSI one.

And yes I'm waiting for pics, playing or hosting directly from a retro build like yours just feels awesome.
"JesusChrist, he dies for your sins"

Offline Heat

  • SCP Admin
  • Super Admin
  • *****
  • Posts: 266
  • Reputation Power: 6
  • Heat is working their way up.Heat is working their way up.Heat is working their way up.
    • View Profile
    • BamaPride.com - Roll Tide!
Re: Home Game Server
« Reply #3 on: June 10, 2018, 10:45:48 PM »
 :D
x

Offline Blakhart

  • Posts: 627
  • Reputation Power: 13
  • Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!
  • Newborn
    • View Profile
Re: Home Game Server
« Reply #4 on: June 28, 2018, 10:39:17 PM »
Lol@heater

Anyway, yes, ecc ram is a great thing especially if one leaves a system up for days weeks months. Here's why;http://www.opsalacarte.com/pdfs/Tech_Papers/DRAM_Soft_Errors_White_Paper.pdf
Here's what ecc ram does to help reduce errors;https://www.pugetsystems.com/labs/articles/Advantages-of-ECC-Memory-520/
Of course there's always the naysayers regarding ecc;https://danluu.com/why-ecc/
And some who sacrifice reliability for speed;https://blog.codinghorror.com/to-ecc-or-not-to-ecc/
I can't believe google got away with running the server the way they did, the emi from all those nasty psus would be horrendous, let alone all the emi from each cpu, board, chip, mem controller, etc. You can be sure they don't run servers this way now they have the cash.

There used to be an option to enable ecc cache in the cpu in many bios but I've not seen that option in ages. It enabled the cpu cache to do ecc on the current cached memory right in the cpu, giving you pretty much ecc ram but not ecc ram (lol). In tests I did on the systems that provided for ecc cache enable, never saw a speed diff in mem benchmarks or cache latency testers so I always enabled it. I dunno if new cpus do it automagically or not.
Now as to the 10krpm and 15krpm scsi drives singing the song of their people, imagine a datacenter with brazillions of them all singing. The isp I worked at had a small noc in the middle of Omaha and it was inaudible outside the door to the rest of the building, think there was around 100 or so drives running 24/7 in there. Things have changed greatly as far as noise elimination with more recent drives, but the move is on to solid state. Sure they're fast but I'd rather have the reliability of enterprise level drives than consumer level solid staters. Even the old scsi drives like in the vid will have plenty of life left in them, they were made with some of the best engineering and materials of the day, unlike consumer drives. You just have to like hearing the song of their people.


Speaking of game servers, here's a writeup I did on mine back in the day;
Code: [Select]
Game Server Hardware Setup How To

Theory

Caveat: This guide is meant for those who want more than just a 400MHz Celeron and an old IDE drive as a game server.... but not for those who would use a 3GHz P4 to host a 10 player Tribes server. This guide also applies to other games, not just the Tribes franchise.

1. System component selection:
The level of commitment one has to the game, ie; how much money are you willing to spend/have hardware to expend, has more of an impact on component selection than anything else. If you want to nickle and dime it, that can be done, and still give one a technicaly interesting and very effective server.
This should direct one to used equipment, such as oem (HP, Compaq, Dell, Gateway) server hardware and the like. Often, inexpensive yet high quality server hardware can be found at surplus operations found online. Motherboards to complete systems are to be had. I recomend oem server hardware when practical as it will be more reliable than consumer grade components.The parts can be found piecemeal, a bit here and a bit there if one has a plan as to what one wants as far as performance/cost goes. Trading for components shouldn't be out of the question.

Throughout this all, keep in mind that Tribes Dedicated Server only consumes about 30MB ram in operation, more depending on how long the server has been up, and how many players are connected. Tribes Dedicated Server hardly touches the cpu with a full player count. The most cpu usage by Tribes Dedicated Server comes when maps are changed, and this cpu usage is more dependant on the disk subsystem than anything else. It (Tribes) was written in an era when the PII 400 was still fairly new, so it WILL run on the old stuff quite well, but that's just boring.  My first Tribes server was an old PII 266MHz with 192MB ram running 98, and would show about 9% cpu usage peaks, 25 players in the server, not including map changes, and it played very well. But that's not a server.


We want a Server.


2. Server configuration selection:
A. There are two configs to consider as far as gameserver systems go; UP and MP.
Servers that utilise MP systems can be more reliable, and offer a smoother gameing experience over UP systems due to one simple fact: MP systems allow two threads to execute simultaneously. UP systems do not. I am not including HT systems in the UP category as they are MP in most respects.
UP systems usualy have two advantages over MP systems: a very slight latency drop, as in 4ms lower ping typicaly, over an equivalant MP sys, and the fact that some apps do not like MP systems. Tribes Dedicated Server is not one of those apps. Gameservers are all about compute availabilty, and MP ensures availability.

B. Now as to CPU core technologies to select from, only the Intel PIII or Xeon, and AMD XP cores are to be considered. These offer best price/performance ratios over older cores such as the PII core, even when in MP configurations, especially considering that increased scripting places a load on the server that PII systems will respond to less quickly compared to cores that have onboard L1 and L2 cache such as PIII and AMD XP cores have, much less higher clock speeds. When you have megs of scripting being called by your server, cores that have on-die cache and higher clock speeds will make the game much more responsive. 64Bit stuff is overkill, by the way.


3. OS considerations:
A. Good OS design minimises app swapping between the cores of an MP system as much as possible. Windows Server2003 has a per-processor runqueue, wich ensures that apps stay in one core for the most part. XP does a decent job of scheduling on an MP sys, but not as well as 2k3. Windows 2000 isn't near as good for MP use as it uses the FIFO algorithm for mem paging on MP systems, as opposed to XP/2k3s use of the LRU algorithm. This can be ignored for UP systems.

B. Linux is an outstanding OS, whether UP or MP kernel, for gameserver apps, I have run a few on Gentoo MP 2.4 kernel, and it ran flawlessly under Wine. One would need to ensure that x is installed as the server requires a cmd box to be up, or think one is up whenever operating. Use of NoFix' dosfix can eliminate the need for the cmd box but may not be stable under Linux/Wine; I have done no testing of this config. Linux 2.6 kernel and up offers per processor runqueue, and greatly reduced latency over the 2.4 kernel, for free!


4. I/O considerations;
Drive;
A. Scsi drive controllers and drives are recommended as they offer more reliabilty, and lower latency over IDE drive subsystems. 10Krpm scsi drives have about half the latency of 7.2Krpm IDE drives as far as access time goes. Scsi also offers data security in the form of better ecc checking by the controller and drive than IDE, and native command queueing, wich means that when the controller tells the drive to find some unrelated bits of data, the drive actualy reorders the request so the heads pick the data off the drive's platters in the fastest manner possible. IDE does not do this. I would rather have some 10Krpm scsi drives that have an str of 30MB per sec than a 7.2Krpm IDE drive system that did 60MB per sec transfers.

B. Nics;
I prefer the Intel Pro100 series as they have proven reliable, and have the lowest cpu usage of any that I know of, and I have seen the data. I have a friend who likes the 3com parts over the Intel, but that may just be bias as he hates Intel.... You can use whatever is at hand and get along fine though.

5. Memory considerations;
1. Sdram is entirely suitable today for server use, as long as you have enough of it. I consider 512MB to be minimum, more on a Linux system would be advised as Linux caches data differently than NT OS's do. Linux systems cache as much code as they can fit before that code is even called by the user, whereas NT (XP, 2k) will not cache anything unless/untill  the system or user calls for it. Having things in memory is faster than on disk by this ratio: memory is accessed in Billionths of seconds while disk access is done in Millionths of a second. Even in Sdram. DDR is out of the question, unless you have it laying about, or can't find a system that doesn't use it. I consider DDR systems to be overkill for Tribes Dedicated Server. DDR should be used in Game boxes, rather than the servers that host the games...


6. Case considerations:
A. A case suitable for your server should be of quality construction, this means that it doesn't flex when you pick it up, twisting cards out of slots and so on.
The Antec 10xx series is commonly used as it is inexpensive and often comes with a quality psu, There are many sizes in this series, and one should choose
one that will fit the allocated space for the server when in operation. If you need to install the server in the standard rackmount U format, several cases can be had in the required form factor, 1u, 2u, etc. The 1u should only be considered if it has enhanced cooling properties. Cooling and drive bays enough for the intended components should be your guide.

B. Weight should not be a consideration as weight usualy denotes physical strength. This means the case will survive negligent transportation more readily than a case with lighter construction. The structural integrity of drive cages and other internal constructs is something to be taken into consideration, cages that can pop free can lead to catastrophic system damage during transport, let alone actual operation. Use a good case...


7. Assembly considerations;
A. Plan your assembly by laying out the parts and checking fit. Sometimes a card (some scsi cards are reeeeeaaaalllyyy long) can be blocked by a cap on the mobo, or a connector on the mobo can be in the way.
I try to place the longest cards in the lowest slot as that maximises airflow over having a long card effectively cut the case in half. Keep in mind that the first and last pci slots share the same irq as the agp, so try to use the middle slots.

B. Try to get the cables out of the way of airflow, when they need to be at a 90% angle, fold them so they exit at the required angle, not allowing them to run on top of each other if at all possible. When conductors are near each other, and have changing magnetic fields surrounding them due to data flow, you get induction. Any conductor near the data carrying conductor will have currents induced by induction. This can cause data corruption over time. Cable management is a good thing to get a grasp of, gradual turns rather than kinked, sharp bends are desired here. Airflow can be helped or hurt by cables, so beware.


Practice;


8. Pre software install hardware vetting;
A. The hardware should be assembled and in operating form so you can run memory testing software such as memtest86. I prefer memtest over all others as it gives absolutely repeatable results when benchmarking your memory bandwidth timing adjustments, wich is a good way to increase server performance over the standard settings in bios.

B. While in bios, disable all comm ports, floppy controllers, IDE controllers, onboard sound and modem, and everything else that you are not going to use. This reduces interrupt handling to the bare minimum, and memory and OS service needs will be reduced as well.

C. When adjusting memory timings to enhance performance, make sure your system runs at least one 24hr session without errors before considering running the server at that memory timing permanently. If you don't, you may end up with an unstable server, that you shipped to some far away colo to host for you...

Here are some memory tuning tips:
 The setting for tras in bios is affected by a rule for performance. If you follow this rule you will get the most performance you can without incurring a data loss penalty. For an example, my server runs at 7/2/2/2 memory times. If the major number (called Tras in bios) is less than the total time of the minor numbers, 2/2/2 in this case, you run the real risk of data corruption. In my case, ideal would be 6/2/2/2, as 2+2+2=6. My server's bios allows only 5 or 7 for the tras setting, so 7 it is. The effect of improper tras is the same as if you were reading a book, and someone comes along and shuts the book closed right in your face, over and over. Memory is like a big ass spreadsheet (data is held in memory "pages"), with columns and rows. The times are how many clock cycles the cpu has to wait before the memory controller can read or write data to the specific column and row. If you set the timings such that you're closing the memory page in the cpus face, before it's done reading that memory page, it has to get it again and read it till it gets it completely.The goal is to increase memory bandwidth to the maximum. If you have good memory, you can and should run the lowest timings possible, as this greatly increases bandwidth. This is all dependant on errors occuring in memory; if you get errors, increase the timings. The best timing depends on the error free performance of the memory. No sense in running memory timings that produce errors. Test your memory for errors and performance with memtest86 or similar.

9. OS tuning;
An OS can be tuned by allocating resources. The physical resources are static, they never change or have any performance characteristics that will change over time.
that is, unless they fail. They run at wide open throttle for the most part. So what can one do to ensure best use of the hardware by the code?

A. Disable devices via device manager that will not be used such as comm ports, floppy controllers, IDE controllers, and usb devices. I will also include services under this heading, they're found under administration tools, and one needs a good guide (typicaly found online) to lead one through wich services to disable and wich to keep, as disabling a vital service may have bad effects on your system..

B. If using an NT OS such as XP, set the gui to windows classic, and set the performance options tab to "adjust for best performance", then hit the advanced tab so we can go further. Under advanced, set the processor scheduling to "background services", and the memory usage to "system cache" if you have over 512MB ram. This will ensure best response from the system to input from the network. Try the various settings and see for yourself. You might discover some combination of settings that works better for your server.


Conclusion;
So, Mr pompous long-winded server builder/operator, what do YOU have as a Tribes server right now?
Well, at the moment, I have a dual PIII 650MHz system comprised of a Tyan Tiger100 mobo, 512MB ECC SDRAM, an Adaptec 2940 scsi card and some 4Gb 10Krpm scsi drives, networked by an Intel Pro100 Management nic. The video is irrelevant as it's only a server, so it's an Intel i740 agp card. The system is running XP Pro at this time.


Offline JesusChrist

  • Posts: 533
  • Reputation Power: 11
  • JesusChrist is on the verge of being accepted.JesusChrist is on the verge of being accepted.JesusChrist is on the verge of being accepted.JesusChrist is on the verge of being accepted.JesusChrist is on the verge of being accepted.
  • " Super Admin "
    • View Profile
Re: Home Game Server
« Reply #5 on: June 30, 2018, 04:25:22 PM »
Pretty funny seeing these old guides about server performance when nowadays you can just start a server, leave it in the background, and play random games and surf the internet all day without any problems. A server full of bots would be different though, but technology has advanced a lot.
"JesusChrist, he dies for your sins"

Offline Blakhart

  • Posts: 627
  • Reputation Power: 13
  • Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!
  • Newborn
    • View Profile
Re: Home Game Server
« Reply #6 on: July 05, 2018, 10:50:13 PM »
Pretty funny seeing these old guides about server performance when nowadays you can just start a server, leave it in the background, and play random games and surf the internet all day without any problems. A server full of bots would be different though, but technology has advanced a lot.
Lol the raw compute power in a single vid card currently made is orders of magnitude greater than the entire systems t2 was coded and/or served on.

Offline ChocoTaco

  • Posts: 418
  • Reputation Power: 11
  • ChocoTaco is on the verge of being accepted.ChocoTaco is on the verge of being accepted.ChocoTaco is on the verge of being accepted.ChocoTaco is on the verge of being accepted.ChocoTaco is on the verge of being accepted.
    • View Profile
Re: Home Game Server
« Reply #7 on: September 13, 2018, 08:15:20 AM »
All my noob server stuff https://github.com/ChocoTaco1

Offline Blakhart

  • Posts: 627
  • Reputation Power: 13
  • Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!Blakhart is a rising star!
  • Newborn
    • View Profile
Re: Home Game Server
« Reply #8 on: October 07, 2018, 02:05:38 PM »
Thanks for the link choc, I like the anti timescale effort.

Offline ChocoTaco

  • Posts: 418
  • Reputation Power: 11
  • ChocoTaco is on the verge of being accepted.ChocoTaco is on the verge of being accepted.ChocoTaco is on the verge of being accepted.ChocoTaco is on the verge of being accepted.ChocoTaco is on the verge of being accepted.
    • View Profile
Re: Home Game Server
« Reply #9 on: October 10, 2018, 11:04:32 PM »
Thanks for the link choc, I like the anti timescale effort.

Ya, lol.

Tags: