Server hardware ~ performance discussion

  • Offline LouD
  • Silent but deadly ;)
  • Moderator
  • Veteran
  • ******
  • Posts: 1415

Server hardware ~ performance discussion

« posted: Nov 12, 2014, 12:35 PM »
We host a small server for 30 players at the moment that is running on a 100Mbit fiber connection.
We aren't using the best hardware but for the moment it's the best we have. I know at this moment our hardware is the bottleneck in performance problems so we are looking at getting better hardware. But untill then we would like to improve on performance with settings if possible.

What I can see from the server load is that when the server starts it always starts at 45~50fps and cps (using armaservermonitor to see this). As soon as the mission is loaded (with empty database) the fps drop to around 40 (Vanilla mission and edited mission). More players and AI ofcourse make the fps and cps drop more (Using a headless client for AI could improve on fps here).
But what I also see is that with a database of about 90 vehicles and 200 objects the fps and cps drop to around 30 on mission load. Also every time the server writes the two db files the fps drops a few and the cps drops about 15~20 frames and comes back up to the running fps when it's done running. With a full database load, around 25 players online our fps drops to around 8~10.
We already only spawn around 150 vehicles and have building loot turned off.

Any tips on improving fps/cps on our current hardware is recommended. It would be nice to get higher fps/cps on our current hardware. Like said we will end up updating it, but for now any performance increase would be good.

What kind of hardware do you all use, what are your startup parameters and how are your basic.cfg settings? Do you see performance increases with different basic.cfg settings?

Our hardware:
Which only runs one arma 3 dedicated server and nothing else.
Code: [Select]
Intel Core i5 M 540 CPU @ 2.53Ghz
6 GB DDR3 RAM
128GB SSD
1Gbit internal network
100Mbit internet connection

Startup parameters:
Code: [Select]
start "arma3" /realtime /affinity FF "arma3server.exe" -port=2302 "-config=D:\games\ArmA3\A3Startup\A3Wasteland\config.cfg" "-cfg=D:\games\ArmA3\A3Startup\A3Wasteland\basic.cfg" "-profiles=D:\games\ArmA3\A3Startup\A3Wasteland" -name=A3Wasteland -pid=a3_prod.pid -ranking=a3_prod_ranking.log "-mod=@ASM" -malloc=tbbmalloc -enableHT -cpuCount=2 -exThreads=3

Basic.cfg
Code: [Select]
MaxMsgSend = 768;
MaxSizeGuaranteed = 512;
MaxSizeNonguaranteed = 256;
MinBandwidth = 131072;
MaxBandwidth = 104857600;
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;

Re: Server hardware ~ performance discussion

« Reply #1 posted: Nov 12, 2014, 10:06 PM »
base object spawns off
100 vehicle
u can remove some structures
i'm on 0.9 i suggest u do the same, rev put 144 in debug on v1
do that fix to anti hack,
don't run atlis
change some saving setting, base 5x24 go to 3 or 4

just start stipping and lower that object count, that clock hurts the most. also i5 m should be 2 cores 4 threads
  • Offline micovery
  • Moderator
  • Hardened
  • ******
  • Posts: 159

Re: Server hardware ~ performance discussion

« Reply #2 posted: Nov 13, 2014, 01:02 PM »
Also every time the server writes the two db files the fps drops a few and the cps drops about 15~20 frames and comes back up to the running fps when it's done running. With a full database load, around 25 players online our fps drops to around 8~10.
We already only spawn around 150 vehicles and have building loot turned off.

All these performance issues you mention, I've already addressed in my fork that uses Node.js for persistence.

1. Players stats are saved when players disconnects (instead of on client-side loop every 60 seconds)
2. Objects, and vehicles save loop interval is configurable
3. List of active (locked) objects in the map is cached, instead of using the slow allMissionObjects "All" command.
4. List of purchased, and mission vehicles in the map is cached, instead of using the slow allMissionObjects "AllVehicles"


There is still a server-side loop that saves player's information at an interval you configure, in case the server crashes.

However, most important of all,  I provide a script that you can run/automate before a server restart.
The script sends a hint to the server asking it to save all the players, objects, and vehicles stats at that time. Because of the script, you can afford to have longer save intervals.

  • Offline LouD
  • Silent but deadly ;)
  • Moderator
  • Veteran
  • ******
  • Posts: 1415

Re: Server hardware ~ performance discussion

« Reply #3 posted: Nov 13, 2014, 01:31 PM »
Also every time the server writes the two db files the fps drops a few and the cps drops about 15~20 frames and comes back up to the running fps when it's done running. With a full database load, around 25 players online our fps drops to around 8~10.
We already only spawn around 150 vehicles and have building loot turned off.

All these performance issues you mention, I've already addressed in my fork that uses Node.js for persistence.

1. Players stats are saved when players disconnects (instead of on client-side loop every 60 seconds)
2. Objects, and vehicles save loop interval is configurable
3. List of active (locked) objects in the map is cached, instead of using the slow allMissionObjects "All" command.
4. List of purchased, and mission vehicles in the map is cached, instead of using the slow allMissionObjects "AllVehicles"


There is still a server-side loop that saves player's information at an interval you configure, in case the server crashes.

However, most important of all,  I provide a script that you can run/automate before a server restart.
The script sends a hint to the server asking it to save all the players, objects, and vehicles stats at that time. Because of the script, you can afford to have longer save intervals.
I'll have a look at your fork then :)