Jump to content
general13k7

Balance between FPS and count of people on server. How?

Recommended Posts

Hello everyone. I want to ask a question on the well-known problem. On our server we have a problem between count of people and server FPS. When we have low people (10-20) we have good fps 40-65 stable, when we have a lot people, more then 30 (limit of server 100 people) we have 25 fps and lower...  At all situations we have much AI. Our map is very big and all ai scattered enough. And we don't know how to use all resources of our specs (Intel Xeon E5-2660v3 - 6 vCPU- 2.6 ГГц-24 GB (DDR-4 ECC)-80 GB SSD RAID-1 and virtualisation VMWare ESXi)

, of course we have 64 bit server arma 3. And why only about 50% of all resources are used, i don't know???  At start of server we use simple commands of course (-loadMissionToMemory -nologs -port=2302 -malloc=tbb4malloc_bi_x64 -name=deepzone "-mod=@deep zone" -autoInit -enableHT -maxMem=24576 -serverMod=@inidbi2;@obfusqf;)

 

So may someone give advice what to do?

Share this post


Link to post
Share on other sites

Arma will never use all the ressource, i try to push a phenom 3.20 4 core (server) only 40% cpu usage.

Check your server fps... too

Be careful with the performance setting (max message send, max size guaranted....) if you increase this value you can reduce desync, but for keeping all the player sync that will kill the performance for every player. (nodesync = everybody at 25 fps) 

Test with default setting i think its better to get few desync but good fps.

 

I think all the server performance and bandwitch setting must be change for a LAN server, cause everybody have a good connection to the server, for exemple you can increase  the maximum packet size and tell to all the player to activate Jumbo Frame on there network device, for exemple everybody at 5KB MTU (client and server) and do a network checkup, if everything is fine (no packet lost) you can increase  the maximum packet size to 5000 on server setting then increase other value for get best performance and no desync on a high populated mission.

 

For a public server keep default value cause there will be player with connectivity issue or high ping and they will cause a performance issue for all the client.

That what happen to me one a ALIVE mission, we were 15 ppl everything was fine but after an assault on a village (village clear no more AI) everybody was at 15-20 fps, 1 player with high ping (150-200) and connectivity issue (he was often disconnected from the server) when he logout from the server the fps for all player back to normal (40-50) 

 

Maybe there too much script on your mission, my experience 30 ppl on a simple coop mission, everything was done on editor (no more than 150 active AI) for a total of 1600 AI. Everybody got a solid 40+ fps, server FPS never go under 20, i only use few script like viewdistance option and vehicle spawner.

A Liberation with 20 ppl, 150 active AI server fps drop to 10, every client got not more than 20-25 FPS.

 

  

 

 

Share this post


Link to post
Share on other sites
  • optimise the mission,
  • cache the ai,
  • use a headless client,
  • don't believe the hype that other server admins spout out about the number of players they can run with
  • set a maximum ping value at somewhere sensible to keep those with poor connections away, somewhere between 100 and say 250

Pure pvp, no AI can run with a lot more players than a coop can because the server isnt processing the ai and then sending their data over the net for syncing to the clients

I would say for a coop with a well optimised mission ans good hardware, you will be maxing out somewhere between 50 and 64 players

Ideally you run with the number of players you can manage (especially milsim coop) while keeping the server cps at a MINIMUM of 20

For me I find around 50 players is a comfortable middle ground between player management and server performance. (We also dont have top spec cpu's)

Share this post


Link to post
Share on other sites
On 24.10.2017 at 6:41 PM, damsous said:

Arma will never use all the ressource, i try to push a phenom 3.20 4 core (server) only 40% cpu usage.

Check your server fps... too

Be careful with the performance setting (max message send, max size guaranted....) if you increase this value you can reduce desync, but for keeping all the player sync that will kill the performance for every player. (nodesync = everybody at 25 fps) 

Test with default setting i think its better to get few desync but good fps.

 

I think all the server performance and bandwitch setting must be change for a LAN server, cause everybody have a good connection to the server, for exemple you can increase  the maximum packet size and tell to all the player to activate Jumbo Frame on there network device, for exemple everybody at 5KB MTU (client and server) and do a network checkup, if everything is fine (no packet lost) you can increase  the maximum packet size to 5000 on server setting then increase other value for get best performance and no desync on a high populated mission.

 

For a public server keep default value cause there will be player with connectivity issue or high ping and they will cause a performance issue for all the client.

That what happen to me one a ALIVE mission, we were 15 ppl everything was fine but after an assault on a village (village clear no more AI) everybody was at 15-20 fps, 1 player with high ping (150-200) and connectivity issue (he was often disconnected from the server) when he logout from the server the fps for all player back to normal (40-50) 

 

Maybe there too much script on your mission, my experience 30 ppl on a simple coop mission, everything was done on editor (no more than 150 active AI) for a total of 1600 AI. Everybody got a solid 40+ fps, server FPS never go under 20, i only use few script like viewdistance option and vehicle spawner.

A Liberation with 20 ppl, 150 active AI server fps drop to 10, every client got not more than 20-25 FPS.

 

  

 

 

we use the client's two Headless and here basic.cfg

language="Russian";
Maxbandwidth=104857600;
Minbandwidth=10485760;
MaxMsgSend=2048;
MaxSizeGuranteed=958;
MaxSizeNonguaranteed=224;
MinErrorToSendNear=0.002;
MinErrorToSend=0.02;
MaxCustomFileSize=150000;
Windowed=0;
adapter=-1;
3D_Performance=1;
Resolution_Bpp=32;
class sockets
{
maxPacketSize=1400;
};
serverLongitude=23;
serverLatitude=41;
serverLongitudeAuto=23;
serverLatitudeAuto=41;
setTerrainGrid=40;
setViewDistance=1400;
setObjectViewDistancege=700;

 

and speed is 100

Share this post


Link to post
Share on other sites

MaxMsgSend = 128;
MaxSizeGuaranteed = 512;
MaxSizeNonguaranteed = 256;
MinBandwidth = 131072;
MaxBandwidth = 2097152000;
MinErrorToSend = 0.001;
MinErrorToSendNear = 0.01;
MaxCustomFileSize = 1310720;
class sockets

{

maxPacketSize = 1400;

};
adapter=-1;
3D_Performance=1;
Resolution_W=0;
Resolution_H=0;
Resolution_Bpp=32;
terrainGrid=25;
viewDistance=2000;
Windowed=0;

 

thats default value

 

For sure this MaxMsgSend value is too high that value force the player to be sync with the server and will slow everybody, after i don't know if the other value need to be changed with a HC.

 

With a 128 MaxMsgSend you can get few desync (only for high ping client), and see sometimes micro rollback with the AI if they are spawned by a script, less rollback with AI placed on editor.

 

this setting

MaxMsgSend = 256;
MaxSizeGuaranteed = 512;  (i never feel any difference by changing this value)
MaxSizeNonguaranteed = 256; (i never feel any difference by changing this value)

 

Rollback and desync are really rare, but ppl feel few fps drop if more than 20 ppl are log on the server.

 

Headless client will help the server to keep higher server FPS if there a lot of AI on the server, for exemple if you got a lot of script and too much AI  a server can drop to 3-4 fps you can get 30 fps as client but the AI will do moonwalk ( a lot of rollback), the headless client will increase the server fps but not the client fps.

So if you had 40 ppl and 200 AI at the same place for exemple i a area of 2kmx2km you can get a 15-20 server fps (its good) but that not help the client the rollback will be really low but there will be too much thing to manage for the client and will result to a fps drop for all client

With 20 client + 100 AI in area (2kmx2km) and an other 20 client + 100 AI in an other area the server fps will be the same but client fps will be better cause they will manage less thing. 

 

From a BI dev :

The ideal factor is: leave it at the default unless you really see something goes wrong. The built-in bandwidth estimation is built on a packet-pair probing QoS, which has shown to be very reliable on the internet as we know it today.

 

After trying a lot of thing in arma the best thing its to play a mission made in editor, low script, never get more than 50-80 simulated AI in a area of 2kmx2km (like 50 AI with waypoint + 30 static AI) and keep the default server setting.

 

 

Share this post


Link to post
Share on other sites
21 hours ago, damsous said:

MaxMsgSend = 128;
MaxSizeGuaranteed = 512;
MaxSizeNonguaranteed = 256;
MinBandwidth = 131072;
MaxBandwidth = 2097152000;
MinErrorToSend = 0.001;
MinErrorToSendNear = 0.01;
MaxCustomFileSize = 1310720;
class sockets

{

maxPacketSize = 1400;

};
adapter=-1;
3D_Performance=1;
Resolution_W=0;
Resolution_H=0;
Resolution_Bpp=32;
terrainGrid=25;
viewDistance=2000;
Windowed=0;

 

thats default value

 

For sure this MaxMsgSend value is too high that value force the player to be sync with the server and will slow everybody, after i don't know if the other value need to be changed with a HC.

 

With a 128 MaxMsgSend you can get few desync (only for high ping client), and see sometimes micro rollback with the AI if they are spawned by a script, less rollback with AI placed on editor.

 

this setting

MaxMsgSend = 256;
MaxSizeGuaranteed = 512;  (i never feel any difference by changing this value)
MaxSizeNonguaranteed = 256; (i never feel any difference by changing this value)

 

Rollback and desync are really rare, but ppl feel few fps drop if more than 20 ppl are log on the server.

 

Headless client will help the server to keep higher server FPS if there a lot of AI on the server, for exemple if you got a lot of script and too much AI  a server can drop to 3-4 fps you can get 30 fps as client but the AI will do moonwalk ( a lot of rollback), the headless client will increase the server fps but not the client fps.

So if you had 40 ppl and 200 AI at the same place for exemple i a area of 2kmx2km you can get a 15-20 server fps (its good) but that not help the client the rollback will be really low but there will be too much thing to manage for the client and will result to a fps drop for all client

With 20 client + 100 AI in area (2kmx2km) and an other 20 client + 100 AI in an other area the server fps will be the same but client fps will be better cause they will manage less thing. 

 

From a BI dev :

The ideal factor is: leave it at the default unless you really see something goes wrong. The built-in bandwidth estimation is built on a packet-pair probing QoS, which has shown to be very reliable on the internet as we know it today.

 

After trying a lot of thing in arma the best thing its to play a mission made in editor, low script, never get more than 50-80 simulated AI in a area of 2kmx2km (like 50 AI with waypoint + 30 static AI) and keep the default server setting.

 

 

with the standard config and with ours there is not much difference...

can anyone help to build a config for our system?

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

×