I created a Capture & Hold mission (cf attachments) which is great from performance point of view when testing with 2-4 players but makes a dedicated server die at 1 FPS with something like 30 players (even if players start to leave it's unrecoverable, it cannot go above 12 FPS). There are a lot of scripts in the mission but I (the mission maker) tried to avoid broadcasting too many messages (it didn't look like a network problem, the server has good upload - around 70 Mbps - and with #monitor command I saw arma server was using around 5-8 Mbps upload and something below 1 Mbps download during the mission).
Here are some ideas to help me (and others) investigate the performance issues of Arma missions:
- the most important is to give mission makers a way to distinguish between bad dedicated arma server configuration and bad mission scripts and allow mission makers to investigate about what generates bad server FPS in their scripts
- create a log file for the server and/or client that outputs what scripts/function names/publicvariableXXXX commands that generate most of the network load/FPS drop
- add a new scripting command that I can use in spawned scripts/threads that outputs the impact of the thread on the server FPS (I would use this command in threads that run infinite loops and I would be able to log a message telling which thread impacted the server's FPS and how much), maybe something that makes use of the functionality of the scriptName command
- I tried using commands mentioned in this article http://community.bistudio.com/wiki/Performance_Profiling but they don't seem to be available in current Alpha version (0.58.105348), I get an error message when trying to execute them
If you have any ideas how to improve the performance of the dedicated server or the mission I created please share them.
When we started playing all players pings became high (something between 150-300) but we didn't have desync yet. Later we started having desyncs and server FPS dropped to 1 and I even saw 0 FPS. When most of the players left the game and something like 8 players were left, there were around 12 FPS on the server.
Here is the dedicated server configuration when the test was done:
- the mission was not a PBO file but a mission folder
- hardware server configuration: CPU AMD Opteron 3280 8 cores / 2.4GHz, 32GB RAM, 70 Mbps upload
- arma 3 dedicated server executable - version 0.58.105348
- arma 3 server configuration files:
profile file
version=1;
blood=1;
singleVoice=0;
gamma=1;
brightness=1;
difficulty="recruit";
class Difficulties
{
...
};
maxSamplesPlayed=32;
sceneComplexity=1000000;
shadowZDistance=100;
viewDistance=3800;
preferredObjectViewDistance=3200;
terrainGrid=6.25;
volumeCD=9;
volumeFX=9;
volumeSpeech=9;
volumeVoN=9;
vonRecThreshold=0.029999999;
server config file
...
motdInterval = 5;
maxPlayers = 64;
kickDuplicate = 0;
verifySignatures = 2;
voteMissionPlayers = 1;
voteThreshold = 0.33;
disableVoN = 0;
vonCodecQuality = 15;
persistent = 1;
timeStampFormat = "full";
BattlEye = 0;
onUnsignedData = "kick (_this select 0)";
onHackedData = "kick (_this select 0)";
onDifferentData = "";
network config file
language="English";
MaxMsgSend=1024;
MaxSizeNonguaranteed=64;
MinBandwidth=50000000;
MaxBandwidth=60000000;
MinErrorToSendNear=0.0001;
- issue attachments: mpStatistics.log, ch_100_battlefields_2013_t27.Stratis {F19715}