PDA

View Full Version : Dual Processor help..


CFH666
10-07-2003, 12:57 AM
Our server runs on a Dual XEON 2.8, windows 2003, and both are hyperthreading so windows shows that there are 4 processors..

When our server gets over 36 people, the pings skyrocket, mainly on the tug of war maps, and when I check the CPU usage, mohaa alon is taking 20-30% CPU.... We also have CI and CK Autokicker running on it as well..Even when CI and autokick BOTH scan, the cpu load stays under 50%... Infact I have never seen it go over 50%. The sv_maxrate is 30000, and I have CI forcing everyones rate at 25000, and I know that available bandwidth to our server is not an issue, I know we have plenty available.

I was remoted into it today messing with some of the setting in the task manger, and came across the Priority and Affinity settings..

I am a little wearing of this, as our server cannot me hard booted if it locks up, but I want to tweak these settings to see if it will make a difference.. I set the CPU priority for BT on high from normal. Is there a command lin switch, or setting somewhere where I can have windows start it with high priority? IT probably wont make a difference but worth a shot..


This is the part what I dont understand, the affinity... I clicked to set it and it showed that BT was being used by all 4 processors, as with CI, and autokicker.. If I were to set BT to run on processors 0 an 1(which I assume would only be 1 physical processor) and CI and Autokicker on number 2 and 3, would this make a difference? how stable would this be? And if it does work, will windows remember these settings or will I have to manualy change them or edit a property somewhere for it? Or would it be best to have everything using all 4 processors... I have heard that programs dont really take advantage of the hyperthreading unless they were specifically written to do so, so would dividing the affinity up to use only one out of the 4 processors, or 2/4(one physical processor) improve performance?

Anyone know why the CPU usage maxes out at 50%? I have never seen it exceed that, and to me that is only 1 physical procesor being used.

Is there a configuration error that is not allowing more than 50% to be used?

With classic mohaa, we had 45 people on our server at one time, and the average pings were 80-100... When it switches to TOW and average pings are 150-200 which isnt bad, but it is pretty inconsistant which makes it a little annoying. I know TOW/LIB modes stress the CPU a lot more, and i know that code for BT is inefficient as hell also.


6

GaSplat
10-07-2003, 06:39 PM
You need to try something and much of the confusion might go away.
First, affinity means what CPUs the game likes to run on, not which ones will it use. MOHAA does not support multiple CPUs. It will only use one at a time. Setting its affinity for one or two of them means Windows will try to run it on one of those CPUs, but this kind of "manual load balancing" is usually unneccesary. Windows usually handles this just fine without your tweaking affinity settings.

In Task Manager, select the performance tab, select View menu, and select to see one graph for each processor. This might be enough to show you what is really going all.

If you have access to the Administrative Tools, open the Performance tool. Add (hit the + button) a "counter" from the Processor performance objects, select "% Processor Time" on the left, and select only one of the "instances" on the right. Repeat this until each instance has been selected once (they will be numbered 0-3 with hyperthreading on, 0-1 with it off). This will let you look at each CPU separately instead of a lump sum total. If you select the "Total" instance, you will see the combined figure which you are quoting now. Unfortunately, this is useless as MOHAA simply does not use more than one processor, no matter how many you have in the box.

This means you will see four CPU utilization graphs, not just one. What you will see is something like this:
one CPU running 80-100% utilization (this is the game server).
one CPU running much lower, maybe maxing at 65% when autokick is doing its thing
two CPUs twidling their thumbs wondering when the heck they will ever get to play.
If you add it up, your overall CPU usage is almost never going to exceed 50%, and is usually closer to 20 - 30%. But that is because half your capacity is unused.

Get your hosting service to turn off hyperthreading. It isn't doing you any good with dual processors and only one game server running. It will help a little. On the other hand, if you leave things as they are and have good bandwidth, you can probably run two, maybe three more instances on MOHAA with little or no performance degredation. Each one will grab its own CPU and happily chug along. I ran four Spearhead servers on a nearly identical set up (slightly slower CPUs was all). All four could run with 20 players with no problems - all at once! But none of them could handle more than 20, maybe 22 players before lag started kicking in - even if all the others were stopped. The individual CPU just maxed out at that point. If you are running MAM and CI, then you might just run two servers and let the admin tools use the other CPUs (again, Windows is usually pretty smart about this stuff so you should not have to tweak this manually). I suggest you ge it to where you can see individual CPU utilization instead of a combined total, and then experiment to see how much stuff you can reasonably run. If you are bandwidth constrained or just want one server, then turn off hyperthreading (your host will have to do it for you).

CFH666
10-07-2003, 10:34 PM
We dont have a hosting company host ours, its hosted at one of out members work for free :), but he cant always go down there to work on it.. We do everything remotely. I did mess with the affinity, and it seems that the other cpus are more active, but I havnt notice any better performance yet.. I figured Ill just have to screw withthings and see, and even then I dont expect a increase.


I think the pings spiking up when it gets full is due to crappy game code and not our server. We also run several server off the same box, and the task manager alreadys hows the 4 independant graphs and they are similar, some what mirroring each other..

6

Irksome
10-08-2003, 01:09 AM
Good news, I have exactly the same setup ... Dual 2.8Ghz Xeons with Windows 2003 ... (in a Dell PowerEdge 4600).

Firstly, I don't think CPU usuage is the cause of your high pings. You say you have plenty of bandwith ... how can you be so sure. Bandwith usuage is exponential as the clients increase ... the difference in bandwith usuage between 30 and 36 players is bigger than the difference in bandwith required between 20 and 26 players. I've never seen a SH or BT server that runs well over 32 players, I think you are getting towards the limits of the server program there.

However, whilst I agree that hyperthreading is pretty pointless unless you have programs that are written to take advantage of hyperthreading, its not gonna make much difference on or off. I have it on, Windows itself is capable of hyperthreading and using multiple processors.

My server runs a 28 player BT server, 28 player SH server and an OFP server. Our CI sits on a separate machine (an old P800) aand runs 3 detachments which is a more elegant solution if you can. CI is far from stable, and when scanning will hog as much CPU as it can.

SH, BT and OFP are all installed as services using a very nice utility called FireDaemon (http://www.firedaemon.com/). When setting up the services in FD, you can explicity define CPU bindings and priority's. I have SH bound to CPU 0, and BT bound to CPU 2. OFP gets bound to CPU 1 and 3. I don't think I've ever seen the CPU usuage go over 30%. Priorities are set as normal, I've never had cause to increase them.

Anymore questions, feel free.