I will go over a select amount of statements/questions I have been asked in my time in this field, which totals to about 6 years. I challenge anyone to prove otherwise with technical feedback.
-More Traceroute Hops means worse performance/lag/latency.
This is a pretty ridiculous statement that has originated on the CAL forum at some point. The problem is kids seem to think a higher number of “hops”, aka layer3 interfaces on a traceroute indicates bad things. To be honest, there is nothing wrong with having a bunch of layer3 devices on your network. You’d be surprised how many layer2 devices are between you and your target.
-Unable to kill someone indicates the hoster is overloading, (aka bad registry)
This is another, ridiculous statement. On a single core2quad processor, you could technically put as many as 4 to 10 servers on it. As long as the actual load remains somewhat low, the first thing you will notice if a hoster is really overloading is the amount of choke that is generated by the server, because there are no CPU cycles left to process snapshots from the server to client. There are also obsessed kids who keep messing with configuration file settings and think large numbers improve things, but in reality, they can cause more harm. Another issue that nobody really takes into account is the gameserver code itself.
-You suck because when I play, everyone complains about the server.
Online gaming is more competitive than say the NFL. When a team loses on a away server, the team will most likely not maintain any good sportsmanship; therefor they will start to bash the server and complain and complain. Of course, if someone tell me the reg sucks, I tell them to load up an aimbot. If the aimbot can kill people, then the problem isn’t the server, ITS THE USER.
- 64bit OS is better for gameservers
This is mostly untrue. A 64bit OS that is running 32bit binaries is no more efficient than a 32bit OS. However, a 64bit bit OS *and* gameserver code has some benefits, like additional registers to use on the stack, vsyscall based gettimeofday (Linux), and other things. VALVe discontinued 64bit support for no reason.
- High FPS is worse than low FPS.
This is somewhat true, and somewhat not true. The true part is, FPS depends on the clock interrupt frequency, aka HZ. A machine of 1000HZ generates more overhead on interrupts, because interrupts fire off so often. The downside is the amount of bus traffic generated by interrupts, more CPU usage, and some other issues. The pros of it are, more accurate timers (in theory), and more accurate scheduler decisions. Higher FPS has more erroring vs realtime (dips), because of complex math to divide the HZ from the 8254’s PLL. The errors accumulate and you see significant erroring over time.
Another thing to consider is how long a usleep(1000) really sleeps. I’ve measured a usleep(1000) won’t come back for approx 10microseconds.. so a usleep(1000) returns about 8uS, instead of 1uS..
- Unstable FPS means you are overloading.
Hogwash. FPS is estimated.
- Intel is better than AMD
Age old argument. While Intel may have faster chips clock for clock, AMD server chipsets support NUMA and DCA, and have excellent memory latency. Of course, Intel’s new CPUs will have the same stuff, but older AMD opterons have better SMP locking (cheaper), but AMD’s have one problem with the TSCs not being able to be sync’d up, and they *will* drift over time.
- More CPU power gives better framerates.
This is another fictitious statement started by a couple of goofballs. Did you know that, a PIII (Pentium 3) has LOWER syscall latency than a P4? Did you also know that OLDER processors give better overall serverside experiences in regards to latency? Why? Older is faster and newer is “Green”
- Solid state disks ..
Solid state disks have access time in nanoseconds instead of milliseconds, which is great. However, unless you are doing a ton of I/O (which gameservers don’t) every second, then it’s useless.
- Clearing log files / ztmp, etc.
Does nothing to help with ‘performance’. I’m unable to find a valid technical reason behind this. From a quick glance, the engine do NOT read the log files in cstrike/log. It writes to them only. If anything, turn off logging to save a couple of CPU cycles.
The bottom line:
Instead of trying to toss faster hardware at gameservers, just fix the code yourself. Learn how to write kernel code. Fix bugs. Adapt the OS to fit your needs.
Main