Jump to content
markussr1984

Vehicle(Item) locality Questions

Recommended Posts

HI,

 

I have a lot of Items on my Map (more than 2000)

 

I read that the Arma Engine gets Problems with more than 1000 Items, so i tryd out a little thing:

 

- We have no performance problems on Client side

- Server is Running stable with up to 100 Players with (~ 15 serverFPS)

 

i tryed to create the Items local on Player side (createVehicleLocal) to gets a higher Server Performance

and take care to not create it at server side.

 

But the result is that the server CPU load noe is at 80 % at 50 Players an there is no way to play with 100 Players as it is Possible with Syced Items.

 

There is the Question WHY ?? if i create the Items local the server should not know this Items but if i look into logfiles he is trying to send Network Messages to it and kant find a valid object(sure he can´t)

but why he is trying it ?

This Problem decreases the server performance a lot of. And i don´t understand why ?!?

 

Can anyone tell me why this is how it is ?

Share this post


Link to post
Share on other sites

I can't answer your question, though I'm curious to how that works myself. However, you can't simply say Arma has problems with more than 1000 objects, because every object is different, some have complex physics others not and so on. My question now is, why did you even try that, because you said the performance was fine.

 

Also, you can try to increase performance by adding caching scripts (there is at least one available at armaholic), you can add a simulation manager module, you can try to get rid of some of the objects (optimising) or last but not least you can add a headless client.

 

It's kinda interesting that you are the second one this week who was concerned about the performance impact of large amount of objects, in my opinion Bohemia should finally get a Community Guide out there which explains how to get the most performance out of one's mission.

Share this post


Link to post
Share on other sites

15 FPS on server is poor very poor. The optimal server fps is 35 FPS. Keep that intact. Object count keep at 500 - 600. Set some cleanUp script for that

Share this post


Link to post
Share on other sites

@R3vo

I want to optimize! And search each Possible way to do that!

I want to reach

- More Players

- And Better Performance

 

The way to calculate Items only on Client side sounds very good for me because this should not impackt server.

- I have HC (He is running most "Server Side Skripts" and i transfer the ownership of all NPCs to him. Only Skripts who have to set Variables on Objects runs from Server side because Arma doesn´t sync this sure if it get set from Client side)

- I also have a Simulation manager running (for this reason i rewrote the "vehicle manager" from AgentRev(Wasteland))

 

and now i go serching about caching skripts and how it works ;)

 

@davidoss

Yes i know 15 fps is really not mutch, but it runs stable. To protect server again overload i have createt an server side fsm module to watch serverfps and if it goes to low then server gets locked id it goes over 15 again then it gats unlocked.

-------------------------

 

I was just interested about the difference between createVehicle and createVehicleLocal.

At the Moment i was reading about the createVehicleLocal command it sounds like an good idea to reduce server load.

but i cant understand why the server gets so impacted from this.

 

And i always aim on performance optimizing. And in Altis Life there are so lot of this who have to optimized you cant get ready.

each time if i think, ok. now you have reached the best performance, i find a new hole to fill up ;)

Share this post


Link to post
Share on other sites

There is one problem to your theory about running a certain, rather large, load on the clients, you make the assumption every player has a computer that can handle a lot of extra information, in the end, and in my experience the more run server side (with a good server box) the better.

  • Like 1

Share this post


Link to post
Share on other sites

I agree with jshock, off loading objects, scripts or AI to clients is the last thing you should consider, especially people with low end CPUs will notice that immediately.

 

- I have HC

 

Then add another one if possible, even a low end laptop can make a huge difference, other than that, there is not much I can recommend, you could of course also try to optimise scripts, but it seems to make that you've already looked in to that. Last but not least, you could try to reduce the amount of AIs and on the other hand increase their skill level to maintain the difficulty.

Share this post


Link to post
Share on other sites

I would also recommend, if after you exhaust all your optimization options that there are still issues, start looking into a better server (even building your own). I've never been on a server with more than 70 people on it at one time, but I've seen a server with only 30 people on it that performs worse than a server with 60 just because of the server provider and the actual level of "dedication" you obtain from your provider.

Moral of the story, if you can't upgrade the software, upgrade the hardware.

Share this post


Link to post
Share on other sites

upgrade the hardware ?????

 

WTF

 

i have running hc on a dedicated machine with i7  4x 3,6 ghz. +HT

 

the game server is running alo running on a dedicated server with Dual Intel Xenon E5-2630v3

 

--------------------------------------------

 

and to loadout to clients:

 

is my knowlege false ?

 

each connectet client has to check each item on collision and mutch more and has to send out network messages is there was an event

each client and server have to handle this network package and take action if required.

 

if the client has the items local with non network option then he should less to do. yes handle collision etc he have to do. but he can ignore all network stuff

--------------------------

 

and yes i know how to optimize scrips. i did this with the most scrips in our mission and on server.

 

our players have with near 100 players online between 30 and 90 fps. demanding on there cpu and gpu and where they are on map.

 

i reworked the mission and server complrtrly from public variable mp framework ( altis life default) to the new remoteexec system. that its nearby very great and very fast :)

 

and i did mutch more optimizing i cant write detailed here.

 

i search always about ways to do it better so i try out somethig that i think its better then the normal system. so i tryed this with createVehicleLocal, too

Share this post


Link to post
Share on other sites

Sorry I couldn't assume the strength of your server, and as far as client vs server loads, I can't entirely answer you, but my best guess would be that in some way, even though things are handled on the client, everything at some point still has to be communicated to the server, so now instead of one object being broadcasted from the server to all the clients, there are now 100 objects being broadcasted to the server, a sort of bottleneck I guess. But that's my best educated guess, could be wrong/half right, I don't know.

Share this post


Link to post
Share on other sites

I would prefer to run the dediserver on the i7 machine and the HC, split into 4 ( 2 Core per HC ), on the Xeon CPU. 

But i guess the i7 is at home? 

Normally you should have no performance issues. 

 

And forget HT, its useless. 

 

HC is only a good support for the dedi and cant replace CPU power. The dedi still need very much power. 

 

Next thing is optimizing the network settings. Yes, the higher to output and the more clients are connected the slower the dedi gets without having more script or AI load. 

And i think here is the bottleneck: Your CPU setting for the dedi have not enough power. Multicore and HT does not exist in Arma! (Only Singleplayer)

 

My system is a i7, too. 

Having a rashmaan map with 3000+ objects and still getting more and more. With a good selection of "enableSimulation false" ( thanks to Xcam ) on the most objects reduce the load about 60% and more. 

I had one time the wrong Simulation setting on and the server was nearly not playable. After 40 AIs on HC everything was nuts. 

 

But i dont have so many players, just a clanserver. But here i go with the Network code optimizing again.

Sometimes i have the feeling arma is "waiting" to finish all the network stuff before doing something else again. Its not running parallel to other scripts and stuff. Just a feeling. 

Share this post


Link to post
Share on other sites

But i guess the i7 is at home? 

 

And forget HT, its useless.

 

NO, both Server have there own 1 GBit/s connection to inet and are located at my hoster.

 

And forget HT, its useless ???

sure ???

 

Picture is after 3,5 hours runtime of arma server

 

ms8xwlsi.png

 

Share this post


Link to post
Share on other sites

I only have german sources to explain you thats is what you see is a problem with windows and "trying single thread stuff making into multi thread stuff without success" thing. 

 

It fools you. Arma Dedicated Server have perfect multicore support? Perfect core balancing? Over 32 threads? Seriously? 

 

This isn´t a scientific optimized high-performance programm.

 

Its Arma. 

 

/Edit

 

Oh wait, your german too :P

 

Ein anderer Nachteil zeigt sich bei Windows, dass Prozesse, die nicht für mehrere Threads optimiert sind (Single Thread Applications), bei z.B. einem Vierkernprozessor aufteilt und dann auf jedem Kern 25 % des Codes abarbeitet anstatt 100 % auf einem Kern zu berechnen. Obwohl es sich um Single-Thread-Programme handelt und damit nur ein Kern aktiv ist, brauchen die anderen Kerne Zeit, um in den C3-Modus zu wechseln und der aktive Kern Zeit, um die Turbo-Stufen zu erhöhen, wodurch die Taktfrequenz bei dieser Variante niedriger ist, als wenn das Programm nicht zwischen den verschiedenen Kernen wechseln würde.

 

 

/Edit2

 

Intel Turbo Boost and Windows Issue. 

 

/Edit3

 

After some more information is to say: It can make some little performance tweaks but nothing big

 

Moving a process between cores can invalidate certain optimizations (shared cache helps, but CPU registers are per core still), so if your OS is "balancing" a process by moving it around it may be causing more harm than good.
For highly optimized (often hand-crafted assembly) programs it can take longer to restore register states than to just let the process keep one CPU all to itself.

 

 

Even i can now make some optimization after this stuff, just to trust the load-scheduler might work or not. Have to test it. 

But Arma is simply a single-thread-application and do like high core frequency per core more then just more cores. 

Because of that, 6700K might be the best CPU for ARMA. Overclock it as long as is stable and run with it. 

 

Ah yes: Some other feature of skylake. 

 

http://wccftech.com/intel-inverse-hyper-threading-skylake/

 

If i had the money i would run some benches but ... :)

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

×