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

Reply via email to