Jump to content
Sign in to follow this  
Sibolo

Dedicated server performance

Recommended Posts

Thanks Dwarden, and MadDogX!

Going to try 36, to see if it will eliminate the tiny, desync I keep seeing.

...Syn...

Share this post


Link to post
Share on other sites

What maximum packet sizes are you running with?

EDIT: Even better, post the content of your current basic config file. :D

Share this post


Link to post
Share on other sites

language="English";

adapter=-1;

3D_Performance=1;

Resolution_Bpp=32;

MaxMsgSend=32;

MaxSizeGuaranteed=512;

MaxSizeNonguaranteed=256;

MinBandwidth=128000;

MaxBandwidth=100000000;

MinErrorToSend=0.001;

MinErrorToSendNear=0.01;

class sockets

{

maxPacketSize=1454;

};

Share this post


Link to post
Share on other sites

This is my current config:

language="English";

adapter=-1;

3D_Performance=93750;

Resolution_Bpp=32;

Windowed=0;

MaxBandwidth=104857600;

MaxMsgSend=8;

MaxSizeGuaranteed=1200;

MaxSizeNonguaranteed=600;

MinErrorToSend=0.001;

MinErrorToSendNear=0.0099999998;

No apparent desync, but the server fps have dropped to 9 in the mean time. Not surprising considering that it's a crappy v-server and I'm running BE with a crapload of extra AI, but the bandwidth seems to be sufficient.

It would be interesting to see this holding up with 20+ players.

Share this post


Link to post
Share on other sites

I've got a 3Ghz E3110 Xeon running the LAN-server. Been having too much fun, to start over again with MaxMsgSend up to 36. The de-sync is only appearing in the player menu, I've not got any yellow or red chains. CTI 16 Mountain Warfare, with 2 clients, and the rest AI, is holdin up pretty good. Server FPS have yet to dip below 35, and mostly staying in the upper 40's. CPU usage is varying, its dropped to 30%, and gone up to 70%~75%. Still, far, far better than before. FPS could and would drop to teens, and CPU usage pretty much stayed pegged at 100% the whole time.

This would be interesting with players, however my upload speed to the internet is 2.2Mbps to 3.5Mbps. So not sure how thats going to work now...

...Syn...

Share this post


Link to post
Share on other sites

MinBandwidth=92160000;
MaxBandwidth=100000000;
MaxMsgSend=36;
MaxSizeGuaranteed=1200;
MaxSizeNonguaranteed=600;
MinErrorToSend=0.001;
maxCustomFileSize=102400;
MinErrorToSendNear=0.0099999998;
adapter=-1;
3D_Performance=1;
Resolution_W=0;
Resolution_H=0;
Resolution_Bpp=32;
Windowed=0;

Playing around with this today and this seems to be a good middle ground for me. I am actually running on a webserver (Quad Core 2 processor AMD Opteron @ 2.1Ghz, 16Gb Memory, 100Mb d/l and 35Mb u/l).

Running with maxmsgsend=8 gave me a bit of lag and some de-sync, but 36 seems to be OK.

Running MSO with a lot of AI and 3 clients running I get about 11fps, but the network never goes higher than about 5% usage. Strangely I am now getting good CPU spread across 4 cores whereas before I was maxing one core and barely touching the other three.

Running smaller missions 4-8 player co-ops and a handful of AI, it rocks away at 47fps or thereabouts.

I wouldn't even try hosting 128 users though! They would be at my door with sharp pointy sticks!!

Share this post


Link to post
Share on other sites

I have to agree, MaxMsgSend=36; isn't giving me any random de-sync.

Thanks to the power company, I restarted. This time with Benny's Warfare v2.070, with 1 client, and 31 AI teams. Its still a mess, Server FPS as low as 15, but up as high as 45. Mostly in the mid to low 30's. We're back to 1Core being pegged at 100%. Too many scripts in Benny's, still no AI team has gotten plain stuck, which normally happens, for me.

...Syn...

Share this post


Link to post
Share on other sites

Well maybe you should first make yourself aware/clear to everyone whats the desired outcome/goal.

Bandwith from server to clients is probably something that is not the limiting factor.

FPS/cycle time on the server is important, yet what range to aim at could be different

to the game mode and AI involvement and server ran scripts.

Finally no desync and little ping/delay may be most desirable.

Share this post


Link to post
Share on other sites

For me, it was simply to understand the correlation between the values. The affect of the values 'per cycle' was something I had not grasped previously, and now I do. For me (with my server load) it is now apparent that bandwidth is not a problem, and my server is probably limited by it's processing poiwer. Nothing I can do about that as it's sat in a server farm hundreds of miles away!

However it is now quite obvious how adding more clients can quickly eat up bandwidth if there is a lot going on. In retrospect this is bleeding obvious, but at least I understand the science behind it!

I ran one of the ACE versions of Warfare last night and I was actually impressed at how well it did perform with a handful of clients and 20 odd AI. I could also see how changing MaxMsgSend affected the client de-sync.

The moral of the story is that there isn't a perfect set-up anyway! I think that it has to be done depending on the mission that is running - especially if it's a client/AI/script heavy mission. Again, bleeding obvious, but it's good to know where to start tweaking the knobs rather than blindly throwing values around! Thanks to all here who did the leg work!

Share this post


Link to post
Share on other sites

On a related topic, has anyone considered tweaking the new MinErrorToSendNear value? It defaults to 0.01, meaning that only position changes larger than 1cm are broadcast to nearby clients.

Now I'm wondering whether such small changes really need to be transmitted, especially considering that we now have visual interpolation. 1cm isn't exactly significant in the grand scheme of things... so wouldn't a value of 0.05 do the trick?

I guess it would take some testing to find the sweet spot, i.e. the highest possible value without visual warping.

Share this post


Link to post
Share on other sites

How about client side?

Do we need to do this math too?

Usually home connections don't have big upload bandwidth, so is there the need to set these parameters too?

Share this post


Link to post
Share on other sites
How about client side?

Do we need to do this math too?

Usually home connections don't have big upload bandwidth, so is there the need to set these parameters too?

I don't think so. Perhaps in extreme cases, but under normal conditions you should be fine.

The only data the client needs to upload to the server is anything that is local to it. This is mostly player data (movement, actions, shooting etc.), and of course the data of any AI under his direct command.

Unless a player has hundreds of AI in his group, I don't think there will be any problems. And at that point, a few config tweaks are unlikely to help anyhow.

Share this post


Link to post
Share on other sites

Ok so based on informations from this thread I've written a new server config file:

language="Italian";adapter=-1;

3D_Performance=93750;

Resolution_W=800;

Resolution_H=600;

Resolution_Bpp=32;

viewDistance=3000;

terrainGrid=25;

Windowed=0;

MinBandwidth=40000000;

MaxBandwidth=100000000;

MaxMsgSend=64;

MaxSizeGuaranteed=1024;

MaxSizeNonguaranteed=256;

MinErrorToSend=0.001;

MaxCustomFileSize=0;

This is because it is intended for an 80 people PvP, with no AI, on a 100mbit connection. The mission usually runs at 10-15 FPS (even lower) so the math I applied was this:

CLIENTS x MAXMESS x PACKETSIZE x FPS = BANDIWTH REQUESTED

80 x 64 x 1024 x 15 = 78643200

I still have to test this config but please comment it.

Share this post


Link to post
Share on other sites
language="Italian";adapter=-1;

3D_Performance=93750;

Resolution_W=800;

Resolution_H=600;

Resolution_Bpp=32;

viewDistance=3000;

terrainGrid=25;

Windowed=0;

MaxBandwidth=100000000;

MaxMsgSend=64;

MaxSizeGuaranteed=1024;

MaxSizeNonguaranteed=256;

MinErrorToSend=0.001;

MinErrorToSendNear=0.02;

MaxCustomFileSize=0;

I removed the MinBandwidth setting (according to Suma, default should be fine) and added MinErrorToSendNear.

Everything else looks fine.

Share this post


Link to post
Share on other sites

So we have this for PvP

MaxMsgSend * MaxSizeGuaranteed * Players * fps = Bandwidth required.

but how would this be for a server that uses Ai "localy" example warfare.

would you need to something like this ?

MaxMsgSend * MaxSizeGuaranteed * (Players + Players Ai's) * fps = Bandwidth required.
Edited by nuxil

Share this post


Link to post
Share on other sites

For theoretical maximum - in practice the traffic probably mostly (way) below it.

Share this post


Link to post
Share on other sites
would you need to something like this?
MaxMsgSend * MaxSizeGuaranteed * (Players + Players Ai's) * fps = Bandwidth required.

Nope. The server streams data to each client, not to each unit. ;)

And that isn't really the bandwidth required, but more like the maximum bandwidth that could theoretically be generated. Since the server already does its own estimation of the available bandwidth, it seems to make sure to limit the number of outgoing messages accordingly.

In other words, you could set MaxMsgSend to something ridiculous like a million, but that won't mean the server needs nigh-unlimited bandwidth. Just that the message limit will never be reached.

Share this post


Link to post
Share on other sites
Nope. The server streams data to each client, not to each unit. ;)

And that isn't really the bandwidth required, but more like the maximum bandwidth that could theoretically be generated.

Ah. Yes ofcource. dont know what i was thinking.

Share this post


Link to post
Share on other sites
I have to agree, MaxMsgSend=36; isn't giving me any random de-sync.

Thanks to the power company, I restarted. This time with Benny's Warfare v2.070, with 1 client, and 31 AI teams. Its still a mess, Server FPS as low as 15, but up as high as 45. Mostly in the mid to low 30's. We're back to 1Core being pegged at 100%. Too many scripts in Benny's, still no AI team has gotten plain stuck, which normally happens, for me.

...Syn...

Same here. Actually there is no way for Benny's warfare, unfortunately. :( Reading 7 pages I understood that this values are great for pvp servers only. Are there any recommendations for coop servers ?

Share this post


Link to post
Share on other sites

reportingIP="arma2pc.master.gamespy.com"; Shouldn't this be reportingIP="arma2oapc.master.gamespy.com"; ?

Share this post


Link to post
Share on other sites
reportingIP="arma2pc.master.gamespy.com"; Shouldn't this be reportingIP="arma2oapc.master.gamespy.com"; ?

Depends if you're using Arma2 or Arma2OA. ;)

Btw. I've been doing some further testing of the cfg settings whenever I find the time, specifically on optimizing MinErrorToSend and MinErrorToSendNear.

From what I can tell so far, it seems to be okay to increase MinErrorToSend to 0.002 (default is 0.001) and MinErrorToSendNear to 0.05 (default is 0.01). Units at close and moderately far distances still move smooth with these settings, but I still need to test observing very distant units. MinErrorToSend is the one to tweak here, as 0.05 seems good for the 'Near value.

Share this post


Link to post
Share on other sites

He is running 1.60 patch so I guess it is OA, does this also apply to CO and what about if your running missions with A2 only content ?

Share this post


Link to post
Share on other sites

Yes, we run CO so that setting may need to be adjusted.

Share this post


Link to post
Share on other sites

Also if it is set to that does that mean when running missions with A2 only content the A2 only players can not see it in the browser ?

Share this post


Link to post
Share on other sites
Also if it is set to that does that mean when running missions with A2 only content the A2 only players can not see it in the browser ?

The content of the missions doesn't matter. If it's a CO server then it is running the arma2oa executable, meaning that vanilla Arma2 players will not be able to join anyway.

If you are running OA or CO, report to arma2oapc.master.gamespy.com, not to arma2pc!

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×