CHB68 10 Posted April 19, 2014 Don't get me wrong; 508 AIL is awesome for an A3 Server, but however this makes no sense at all. All cores are more or less working now, the overall CPU load is at 27%, lots of RAM available, but FPS and CPS are down around 20. There is so much computing power left, but unused! Too bad.... :icon_frown: Share this post Link to post Share on other sites
artisanal 22 Posted April 20, 2014 Reboot your computer once in a while :don 13: Share this post Link to post Share on other sites
gagi2 50 Posted April 20, 2014 (edited) Reboot your computer once in a while:don 13: oh yeah.... because this will solve all problems... :p if you dont know what to say... shut it fact is arma3 isnt optimized very well... arma2 wasnt either... and then all these half-wise guys come up with solutions like.... reboot... or upgrade your pc/server... there are options for startparameters etc which are useless... the threads/cpus etc for example... and then the max limit of the ram usage at 2047mb... and why should we reboot a server? its a SERVER... not an effing client pc... there are servers running for months without any problems... iuts exactly what a server should do... running... and serving ^^ so think about all that first before you answer something like REBOOT... Edited April 20, 2014 by Gagi2 Share this post Link to post Share on other sites
artisanal 22 Posted April 20, 2014 (edited) First of all : my comment isn't a solution, and why ? Because the post isn't looking for any solution. In fact, the OP isn't asking any question ; he's just pointing out a well known and established fact, which has been quite precisely monitored etc... in many forum posts. Fyi, the consensus points out that in order to increase the fps, you may upgrade CPU, HDD/SSD, RAM and on the other part many say BIS should step up to the standard (performance-wise) set by other games. I don't want to debate here, but the subject is dense and doesn't really have "a" solution anyway. Second : y so sirius ? I even put a smiley to make it clear that my post isn't serious at all (but hey, nearly 10 days of uptime for a computer ... well, nvm :D Edit : okay it's a server, but this fact didn't really come to my knowledge immediately ; my joke could be categorized as a bad joke if you want) ... Chill out, try not to be so provocative/insulting. Edited April 20, 2014 by Artisanal Share this post Link to post Share on other sites
ratszo 17 Posted April 20, 2014 Server does have to wait for packets to sort & sync. All mp games have to deal with how packets are sorted. Too 'loose' the packets, unsynced; Too 'tight', cpu thrashes waiting for all packets to sort via timestamp. Corrupt packets need to be resent, or timedout.... ..., And then the server has still got to have the power to run the game. So, netcode is a series of tradeoffs. Try Dwarden's betas. Oh, and busy servers are restarted often, some every 2 hours. Share this post Link to post Share on other sites
gagi2 50 Posted April 20, 2014 Oh, and busy servers are restarted often, some every 2 hours. maybe gameservers... but not a whole root ^^ Chill out, try not to be so provocative/insulting. im not mad at you bro... so just take it easy ^^ but this just needed to be said once :cool: Share this post Link to post Share on other sites
CHB68 10 Posted April 20, 2014 First of all : my comment isn't a solution, and why ? Because the post isn't looking for any solution. In fact, the OP isn't asking any question ; he's just pointing out a well known and established fact, which has been quite precisely monitored etc... in many forum posts. Fyi, the consensus points out that in order to increase the fps, you may upgrade CPU, HDD/SSD, RAM and on the other part many say BIS should step up to the standard (performance-wise) set by other games. I don't want to debate here, but the subject is dense and doesn't really have "a" solution anyway.Second : y so sirius ? I even put a smiley to make it clear that my post isn't serious at all (but hey, nearly 10 days of uptime for a computer ... well, nvm :D Edit : okay it's a server, but this fact didn't really come to my knowledge immediately ; my joke could be categorized as a bad joke if you want) ... Chill out, try not to be so provocative/insulting. First of all; you know where you can put your unqualified jokes ArtisANAL? And second; if you have no clue, please be so kind and STFU. For all others, and especially BI actually working on performance server executables; I forgot to post the server hardware specifications. Sorry for that. Share this post Link to post Share on other sites
xendance 3 Posted April 20, 2014 http://abload.de/img/bottleneck3kkt9.pngDon't get me wrong; 508 AIL is awesome for an A3 Server, but however this makes no sense at all. All cores are more or less working now, the overall CPU load is at 27%, lots of RAM available, but FPS and CPS are down around 20. There is so much computing power left, but unused! Too bad.... :icon_frown: The game and server is is mainly single threaded. You probably have hyper threading on, so 0.27 * 8 logical cores = 1 physical core maxed out. So, to answer your question on "what limits the server?": It is limited by the single thread performance of your CPU. Share this post Link to post Share on other sites
artisanal 22 Posted April 20, 2014 im not mad at you bro... so just take it easy ^^but this just needed to be said once :cool: Roger that :) this clears the situation Share this post Link to post Share on other sites
jgbtl292 0 Posted April 21, 2014 For all others, and especially BI actually working on performance server executables; I forgot to post the server hardware specifications. Sorry for that. LOOOOOL A NEWBY WITH HOPE :D SWEET ^^ sry but we speak us in years ;) Share this post Link to post Share on other sites
CHB68 10 Posted April 21, 2014 Okay, so lets forget about it. Obviously it's not possible to start a discussion about a topic that should concern all of us w/o getting trolled and provoked. So return back to Altis life everybody and have fun... Share this post Link to post Share on other sites
k0rd 3 Posted April 21, 2014 hey OP - sometimes the way the mission is written is the cause of the bottleneck. I'm not saying that is true in this case, but it is one of the things that has a huge impact (esp. in multiplayer) on performance that you can really get under the hood to adjust. Engine issues we can't really do anything about except analyze and identify. I think the negative response isn't because people disagree, I think we are all just frustrated about it and sick of seeing the threads. Share this post Link to post Share on other sites
rory_pamphilon 16 Posted April 22, 2014 Does anybody know if/when arma 3 will receive the garunteed message send fix that DayZ just received on experimental? It stops client and server spamming msgs to each other in the hope some get through. It reduces server load and bandwidth in one fell swoop Share this post Link to post Share on other sites
John Kozak 14 Posted April 22, 2014 (edited) http://abload.de/img/bottleneck3kkt9.pngDon't get me wrong; 508 AIL is awesome for an A3 Server, but however this makes no sense at all. All cores are more or less working now, the overall CPU load is at 27%, lots of RAM available, but FPS and CPS are down around 20. There is so much computing power left, but unused! Too bad.... :icon_frown: I have a strong feeling that the "0.3ms delay" for scheduled scripts. If some "core" scripts suffer from it too - that'd explain everything... Be warned, I'll launch ArmA under VS2013 profiler one day and will find the truth... Edited April 22, 2014 by DarkWanderer Share this post Link to post Share on other sites
Sniperwolf572 758 Posted April 22, 2014 I have a strong feeling that the "0.3ms delay" for scheduled scripts. If some "core" scripts suffer from it too .Be warned, I'll launch ArmA under VS2013 profiler one day and will find the truth... The "delay" is a cap on the execution time of a script, if the engine thinks it's taking too long. Scheduler will then pause the execution of your script in the current frame, and continue it in one of the next frames, when there is room for it so it can't horribly affect performance. The intention of this is to increase the FPS when there's no time to execute those scripts, not to reduce it. I see no reason why that would be the FPS bottleneck. Share this post Link to post Share on other sites
John Kozak 14 Posted April 22, 2014 (edited) The "delay" is a cap on the execution time of a script, if the engine thinks it's taking too long. Scheduler will then pause the execution of your script in the current frame, and continue it in one of the next frames, when there is room for it so it can't horribly affect performance.The intention of this is to increase the FPS when there's no time to execute those scripts, not to reduce it. I see no reason why that would be the FPS bottleneck. Well, previously there was info on this page about a 0.3 ms "sleep" after each command in scheduled env to prevent thread lock-up. That matches the pattern - the more scripts on the server, the less would be the actual CPU load. EDIT: I won't say that the reason is exactly that, but there is definitely something. It is either some Sleep(...) in the code, or lock contention, which causes this behavior. Ideally the main "game loop" should take 100% of single core CPU time, if there's no FPS restriction. Edited April 22, 2014 by DarkWanderer Share this post Link to post Share on other sites
Maxon 1 Posted April 22, 2014 Hello, it´s quite easy. ARMA3 Server can use 2 Cores. you have 8 logical cores on your maschine. 25% usage will say that 2of8 are under 100% load (the 2 Cores what ARMA3 Server will support). So your Server run under full load. Or let us Say, Arma3 Server uses all Ressources it can. Share this post Link to post Share on other sites
John Kozak 14 Posted April 22, 2014 Hello,it´s quite easy. ARMA3 Server can use 2 Cores. you have 8 logical cores on your maschine. 25% usage will say that 2of8 are under 100% load (the 2 Cores what ARMA3 Server will support). So your Server run under full load. Or let us Say, Arma3 Server uses all Ressources it can. Bad guess - see the first screenshot. Individual cores are loaded less than by 100%. Share this post Link to post Share on other sites
Maxon 1 Posted April 22, 2014 Sorry, but you are wrong. internal Core management of current operating systems can spread the load over all cores, But in summary it will never use more then 2 Cores for arma3server.exe Share this post Link to post Share on other sites
John Kozak 14 Posted April 22, 2014 Sorry, but you are wrong. internal Core management of current operating systems can spread the load over all cores, But in summary it will never use more then 2 Cores for arma3server.exe Please tell us how single thread can be spread to load all cores, looks like we have a breakthrough in OS design :) Share this post Link to post Share on other sites
CHB68 10 Posted April 22, 2014 Please tell us how single thread can be spread to load all cores, looks like we have a breakthrough in OS design :) ...and that's the point. The screenshot shows our root running one A3 server + one TS3 server only! (Benny's BECTI 0.97 slightly tweaked / no HC) We all know that 508 AI usually kill core 0 even running @3,8GHZ, but as you see the load was spreaded more or less over all available cores. So what is it? Real multicore? If so, why the A3 server did not take advantage in using the all CPU power? The root CPU workload is at 27% only. This is waste of resources and the A3 server suffers at 20 FPS/CPS. No need to mention that all client FPS suffer too, once the A3 server is down at 20FPS or below. That's why this thread is called "What limits the server?" ;) P.S.: Thank you very much for getting seriously... Share this post Link to post Share on other sites
John Kozak 14 Posted April 22, 2014 (edited) ...and that's the point. The screenshot shows our root running one A3 server + one TS3 server only! (Benny's BECTI 0.97 slightly tweaked / no HC)We all know that 508 AI usually kill core 0 even running @3,8GHZ, but as you see the load was spreaded more or less over all available cores. So what is it? Real multicore? If so, why the A3 server did not take advantage in using the all CPU power? The root CPU workload is at 27% only. This is waste of resources and the A3 server suffers at 20 FPS/CPS. No need to mention that all client FPS suffer too, once the A3 server is down at 20FPS or below. That's why this thread is called "What limits the server?" ;) P.S.: Thank you very much for getting seriously... YW ;) I am a C++ Dev myself, and the topic is very interesting from professional viewpoint. There is a free profiler around called AMD CodeAnalyst. We don't have pdb symbols for the server code itself, but we can see the system API calls - like Sleep or WaitForSingleObject (mutex lock stuff). That may give us some onsight on what causes the code to idle the CPU so much. If you or other server owner can run a server with this profiler attached, that may give us some intel on what's happening. Edited April 22, 2014 by DarkWanderer Share this post Link to post Share on other sites
naught 6 Posted April 22, 2014 The sleep within the SQF environment isn't what's causing the FPS drops. This "sleep" is designed to delay execution in a scheduled environment after 0.3 ms. And I say "sleep" because, due to SQF's single-threaded environment, it actually just yields to the back of the execution stack and waits it turns patiently for the other scheduled SQF scripts to run. This means that after a script takes longer than 0.3 ms to run, it's latest next run time can be calculated by simply multiplying the number of scheduled scripts by 0.3 ms. And since these scheduled scripts aren't actual OS threads, the switching between them can be much more efficient due to the shared memory and execution environments, depending on how they were implemented. DarkWanderer, in response to your latest post, I believe that the only usages for the OS-level sleep command would be in the netcode, and that any other under-utilization would derive from generic memory contention scenarios. Also, if it were to be a mutex-related issue, either the CPU usage would increase due to the busy-wait, or they would've implemented a yield-type pattern into a custom mutex wrapper; but the latter would be a cancer for any knowledgeable game developer, since it relinquishes power that can be used for something else within the game engine itself. To the OP, if you want to test whether the slowdowns are caused by either internal netcode or memory contentions, simply start the server with 500+ AI without any connected clients and then monitor the FPS. The engine should not need to send/wait for packets, so if the netcode were the issue, the system will either run at at least 90% usage on at least one core (shouldn't be a prolonged 100% due to internal switching mechanisms) or will dramatically increase the FPS. Also, there's no need for what was said in this thread, and some of the comments are just completely immature. Keep it on topic, or ignore it. Share this post Link to post Share on other sites
k0rd 3 Posted April 22, 2014 YW ;) I am a C++ Dev myself, and the topic is very interesting from professional viewpoint.There is a free profiler around called AMD CodeAnalyst. We don't have pdb symbols for the server code itself, but we can see the system API calls - like Sleep or WaitForSingleObject (mutex lock stuff). That may give us some onsight on what causes the code to idle the CPU so much. If you or other server owner can run a server with this profiler attached, that may give us some intel on what's happening. inb4 1,000,000,000 GetTimeOfDays on the stack Share this post Link to post Share on other sites
Maxon 1 Posted April 22, 2014 @DarkWanderer Do a test by yourself. try prime95. use 2 logical Cores with os Windows 8. You will see a random core utilisation over all cores. in summary 25-30% on a cpu with 8 logical cores. I don´t know i can it better explain to you. but just looking on the taskmanager and waiting that the cores will load 100% and say, this core is under full load is on current OS not possible. Windows will spread the load on all cores (maybe it will just display) but that is what i can measure with programs. Share this post Link to post Share on other sites