I figured I should share some of this with you, since it's downright amazing:
I recently upgraded the OS on one of our CS servers from FreeBSD 5.0-RELEASE to 5.1-RELEASE to take advantage of the new SMP features, and the new scheduler. The server is a Dell Poweredge 1600 series with dual 2.8 Xeons, 400 mhz bus, 1.12G PC2100 ECC 2.5cl ram, and a U320 PERC controller with a Seagate Cheetah 15k U320 drive. The "Before" setup was a single Xeon on FreeBSD 5.0 (HZ=100), running sshd, and hlds 3.1.1.0c(sys_ticrate=10000, no minrate or maxrate, sv_maxupdaterate 100) + amx 0.9.3 (21 plugins), HLG 1.41(11000), as a 32-player single CS server. Since BSD 5.0 only had the 4.x-version kernel scheduler, that's what was used, on a pretty generic kernel. With 32 players, running CS on a high-load map such as cs_office, typical loads were reported by 'top' to be around 85%-90% CPU, with generally stable pings, and few spikes, even during heated conflict. Total system load, which includes other essential services shows to be the same, at 85%-90%. Maps such as aztec and dust would load in the mid-70's range with 32 players. The "After" configuration includes a 2nd Xeon, an upgrade from source to FreeBSD 5.1 (HZ=1000), enabling the Hyperthreading features in the Xeons, and using the newer (and still experimental) ULE scheduler. FreeBSD's has support for HT, but it sees the HT as physical CPU's, so there is a switch that actually halts logical CPU's by default as so not to cause poor performance because they might compete for resources. I have enabled the logical CPU's on my system. With 32 players and no changes in hlds configuration, 'top' is reporting hlds load on cs_office to be the same 85%-90% on one CPU. Overall system load shows to be 18% total. On dust and aztec the per-cpu load is the same, but overall load is 11%-12%, with no detectable spikes. (short pause) Yes. You read that correctly. 11-12%. Another thing that is noted is that while hlds is not a multithreaded or SMP aware process, it doesn't continually run, so it runs-pauses-runs-pauses. This is allowing the scheduler to shift the load to an unused cpu. While this isn't taking advantage of the chip's cache to improve speed, it isn't forcing a perticular CPU to become the processes "host". Perhaps after BSD gets some better support for SMP we will have the ability to control processor affinity, but for right now, I could care less - the performance increase is f***ing amazing! Another point of note, using the linux compatibility mode in BSD does not affect hlds in the manner that some linux kernels do, where you see the cpu loads shoot up to 70% with no players playing. I have found one of our machines running SuSE does exhibit that problem. Stability so far looks really good, and I would recommend 5.1 for anyone who is going to use it strictly as a gaming server, despite the fact it is not considered a stable release yet. Also, end of September is the target date for the next major snapshot of the 5.x branch, and we expect further improvements in the kernel scheduler and SMP subsystems. Sorry if I sound like a commercial, but I'm just thrilled with the results so far!! Michael Ressen, Michigan Burbs Network Administrator www.michiganburbs.com ------------------------------------ _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlds_linux