Jump to content
Sign in to follow this  
meatball

Attempting to Improve Server Performance

Recommended Posts

I'm working to improve the performance of one of my missions on a 'Dedicated' server I'm using occasionally to play / test with friends. Finding we're all having FPS issues, often times dropping down to the 10's/single digits which leads me to believe it's the server itself. I know my mission are pretty hefty and there's a lot going on, but was hoping someone could help me pick apart my .rpt file and see if I can clean up some issues before I attempt to rip the mission apart and add in Headless Client support. Here's some of the background info.

Dedicated Server Specs: ASRock H77M Mobo, Core i5-3570K CPU (3.4-3.8GhzTurbo), 16 GB RAM, A3/Server Software installed on a RAID 5 HD Spindle Drive (Read speeds ~ 198 MB/s). Using the latest Dedicated Server software (updated to the Steam ID 233780 package) with Tophe's Server Tool. Have 50 MB Down/5 MB Up Internet service. Never have more than 8-10 people on the server.

With my main mission (Altis Force Recon: West) I am using a caching script to cache the bulk of the AI running around, but there's still usually 100+ AI. I decided to run a test with some debug info and ran through about 45 minutes of a mission on my own. Tons of random errors about items missing, not found or empty, but I'm not 100% sure what to do about any of it or any of them are having any impact. Here's the .rpt file if anyone wants to poke through it. Any suggestions/info would be much appreciated!

Edited by Meatball

Share this post


Link to post
Share on other sites

Another thought I had, I have a _lot_ of triggers that are checking for various things. I know triggers check a bunch of times each second, but most of mine don't need to check that often. There any way to maybe lower the frequency of trigger checks? Maybe dropping most of them down to only check each second or two would ease things up as well.

---------- Post added at 18:33 ---------- Previous post was at 18:31 ----------

Which caching script are you using?
99% of my AI are created using the AI Spawn Script pack by spunFin, mainly with the Ambient Combat/Militarize scripts. I'm using spunFin's simpleCache script that comes in the pack to cache all the militarize units until the players are within 1250m of the target location.

Also have it set so Ambient combat will not run and will stop anytime any of the militarize units are alive.

To make sure dead units aren't an issue, I'm also running Aeroson's repetitiveCleanup script that nukes dead bodies/vehicles etc within 10-20 minutes.

Edited by Meatball

Share this post


Link to post
Share on other sites

Well, I've figured out the root cause is the CPU. Even with server flags set to -cpuCount=4 and -exThreads=7 on the i5-3570K, Core 0 on the CPU is pegged at 100% while the other 3 CPU's hover around 5-10%. I may have to investigate using a Headless Client unless someone else knows of any other way to force the other cores to pick up some of the workload.

Share this post


Link to post
Share on other sites

Can you explain what you mean by 'locked' cores? Only the first core is pegged at 100%, and I assume that's b/c Arma doesn't multithread.

Share this post


Link to post
Share on other sites

In arma 3 All my cores share equal, But a locked core is a core that can be semi active whilest not begin able to got to high, Kinda limited, but it's not supposed be on at all you can check if you have cores locked by counting how many are in the Resource Monitor, (Task Manager > Performance > Resource Monitor > CPU) And in your case you should have "Core 0, Core 1, Core 2, Core 3" and if you don't you have locked cores. if you do display let me know we can work from there

Share this post


Link to post
Share on other sites

Yeah, I pulled my original info using Resource Monitor/CPU. Total CPU usuage bounces around 29-35%, Core 0 hovers right around 90-100% and the 3 other cores (1-3) hover below 5-10%.

cpu_ded.jpg

Edited by Meatball

Share this post


Link to post
Share on other sites

Yes, tried with both -cpuCount=4 and -exThreads=7

Update: Looks like it might have been the combination of having both those params set. Using just -cpuCount=4 seems to spread the workload over all 4 cores.

Edited by Meatball

Share this post


Link to post
Share on other sites

In my missions I have trigger areas that will repair vehicles so instead of the server running the trigger I push the trigger to be local only on the player. That way the server saves it resources. If you have a clean up script I usually push that locally on players sometimes. I usually don't care if clients run a clean up script un-synchronized. Try looking at your missions and determine what can be run on the client and not the server then push them to the client.

Also the number A.I. plays important role in determining server FPS, try not to have over 100 A.I. at one time.

Edited by Johnson11B2P
Added some more tips.

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  

×