Jump to content
Sign in to follow this  
neswrossi

Server Performance

Recommended Posts

As much as I love ArmA I find myself getting more frustrated with the warping that occurs on many servers. I appreciate that servers require a powerfull PC to run, and that A LOT of servers out there are running 30 man+ servers on inadequate hardware.

But, are there any plans to improve the client prediction? Taking aim on an enemy only to then seem him warp from one place to another is extremely annoying. Some kind of interpolation is definitely needed to help resolve this. Some servers may not be set up correctly and the server software itself may not be perfect, but I really think this needs looking into considering how many people play this game online now.

Share this post


Link to post
Share on other sites
As much as I love ArmA I find myself getting more frustrated with the warping that occurs on many servers. I appreciate that servers require a powerfull PC to run, and that A LOT of servers out there are running 30 man+ servers on inadequate hardware.

But, are there any plans to improve the client prediction? Taking aim on an enemy only to then seem him warp from one place to another is extremely annoying. Some kind of interpolation is definitely needed to help resolve this. Some servers may not be set up correctly and the server software itself may not be perfect, but I really think this needs looking into considering how many people play this game online now.

This is mostly because of bad server settings and/or insufficient hardware. The best advice is to look for servers that don't have these problems and avoid the others.

As far as I know, BI is improving this in the next patch.

Share this post


Link to post
Share on other sites

I agree 100%. The netcode could definitely use some improvement and instant warping should be avoided at all costs. Interpolation is obviously not very smart compared to other titles. I'm not even sure if ArmA uses something like movement prediction at all?

And of course a better documentation on certain server parameters would also help a lot. Unfortunately BIS has not been very talkative in that respect.

I have yet to see a server where objects don't warp all around the place. The magnitude varies to some extent but the effect is there no matter what ping i get and how the server is configured.

Btw, there's an old discussion thread about netlag:

http://www.flashpoint1985.com/cgi-bin....t=56145

Share this post


Link to post
Share on other sites

I am a programmer by trade (im at work now lol) but I have not done anything with netcoding or anything like that. But, at an educated guess, implementing a client interpolation/prediction system would reduce the need for the server to send updates so often as the client would be 'filling in the gaps' so to speak.

Im wondering if the server uses some kind of peerless transmission for its updates rather than talking to clients directly.

Share this post


Link to post
Share on other sites
I am a programmer by trade (im at work now lol) but I have not done anything with netcoding or anything like that. But, at an educated guess, implementing a client interpolation/prediction system would reduce the need for the server to send updates so often as the client would be 'filling in the gaps' so to speak.

Im wondering if the server uses some kind of peerless transmission for its updates rather than talking to clients directly.

We don't really know much about the server's netcode, apart from the fact that there are some gaping security holes in it, and that it can get really laggy if the server is not set up correctly.

I've seen servers with only 3 or 4 people lag like hell, and then servers with 30+ people run completely smooth.

Share this post


Link to post
Share on other sites
Quote[/b] ]

I've seen servers with only 3 or 4 people lag like hell, and then servers with 30+ people run completely smooth

Thats a very broad statement mate, there are many factors that can cause a box to perform poorly, one factor which most ppl dont take into account is the design of a mission, An in-experienced mission maker can kill the best of servers with several looping scripts in a mission. Even poorly made addons will lag a server badly, I can also see the effect that a poorly made mission has on our server straight away.

Our server is one of the fastest machines in the Armed Assault community and for a while we had huge ISP problems causing all sorts of performance issues. So making a generalised statement like the one above really serves no purpose.

On another note: very much enjoyed your ChopperFX script Maddog nice work, (and doesnt lag server..lol)

Share this post


Link to post
Share on other sites

Wired Config files settings for bandwith

\\server Settings used to configure bandwith

safeMaxBandOverGood

maxBandOverGood

latencyBestAdd

latencyBestMul

latencyOkAdd

latencyOkMul

latencyWorseAdd

latencyWorseMul

latencyOverAdd

latencyOverMul

minDropouts

okDropouts

midDropouts

maxDropouts

minAckHistory

maxOutputAckMask

lostLatencyAdd

lostLatencyMul

maxChannelBitMask

ackWindow

outWindow

goodAckBandFade

minLatencyAdd

minLatencyMul

minLatencyUpdate \\update pings evry MS/s?

initLatency \\\Creates Higher pings?

minActivity

maxBandwidth

minBandwidth

initBandwidth

ackRedundancy

ackTimeoutB

ackTimeoutA

dropGap

maxPacketSize

rcvBufSize

winsockVersion

sockets

NetServer

MaxCustomFileSize

MinErrorToSend

MaxBandwidth

MinBandwidth

MaxSizeNonguaranteed

MaxSizeGuaranteed

MaxMsgSend

Share this post


Link to post
Share on other sites

After extensive testing over the past few months with "Evolution" on the SES server, we have come to the conclusion that if we are ever to acheive the promised 100+ players online in battles, we will need some pretty major server code optimisations.

Its impossible to remove desync completely from JIP, with current server performance, we have really changed everything we can think of so far(server settings/mission revisions).

Server never goes over 60% cpu usage(p4 3.0Ghz HT 1Gb Ram), bandwidth is hardly ever above 2% on a 100MBIT line.

Hopefully the server side of the game will be fully addressed in future patches?.

Share this post


Link to post
Share on other sites
After extensive testing over the past few months with "Evolution" on the SES server, we have come to the conclusion that if we are ever to acheive the promised 100+ players online in battles, we will need some pretty major server code optimisations.

Well, "Evolution" mission is a bandwidth hog as it is heavily scripted. I had like 8 players on my server and upload bandwith was jumping between 500kb-700kb which is quite excessive but understandable taken the nature of the mission.

So you are barking at the wrong tree here, it's not the netcode to blame in that case. Regular coop missions with 10 players take usually like 150-250kb of upload bandwidth which is not that much really. And if you don't have AI in player vs player missions, I figure at least 64 players should run on proper servers.

Share this post


Link to post
Share on other sites
After extensive testing over the past few months with "Evolution" on the SES server, we have come to the conclusion that if we are ever to acheive the promised 100+ players online in battles, we will need some pretty major server code optimisations.

Well, "Evolution" mission is a bandwidth hog as it is heavily scripted. I had like 8 players on my server and upload bandwith was jumping between 500kb-700kb which is quite excessive but understandable taken the nature of the mission.

So you are barking at the wrong tree here, it's not the netcode to blame in that case. Regular coop missions with 10 players take usually like 150-250kb of upload bandwidth which is not that much really. And if you don't have AI in player vs player missions, I figure at least 64 players should run on proper servers.

Barking up wrong tree?

Like I said bandwidth isnt the issue, on our "proper" 100mbit dedicated server with 2% usage at most?

Yes "Evo" is heavily scripted, and has also been heavily modified since its first incarnation.

Serverside FPS does drop due to the scripting, but actual CPU usage never goes over 60%. The only times we have noticed any real server lag has been during JIP.....It seems like the server engine doesnt share bandwidth equally to current players while updating new connections.

These are the observations of many players, not just me!

And asking if the server coding will get any further optimizations, Is that really barking up the wrong tree?

We are still trying to optimize the arma.cfg settings, so maybe we will find better settings in the mean time.

Share this post


Link to post
Share on other sites

Likewise, Volcbat server can handle a 30 player evo no problem, no lag or desync beyond the odd warping enemy infantry, but when JIP kicks in you get some serious desnyc. crazy_o.gif

Share this post


Link to post
Share on other sites
Barking up wrong tree?

Like I said bandwidth isnt the issue, on our "proper" 100mbit dedicated server with 2% usage at most?

Yes "Evo" is heavily scripted, and has also been heavily modified since its first incarnation.

Serverside FPS does drop due to the scripting, but actual CPU usage never goes over 60%. The only times we have noticed any real server lag has been during JIP.....It seems like the server engine doesnt share bandwidth equally to current players while updating new connections.

These are the observations of many players, not just me!

And asking if the server coding will get any further optimizations, Is that really barking up the wrong tree?

We are still trying to optimize the arma.cfg settings, so maybe we will find better settings in the mean time.

Sorry, didn't mean to be harsh. But basically I agree that optimizations for server-side scripts and such would be nice. I was only trying to emphasize that underlying netcode is not weak or unoptimized if you play maps which are not so heavily reliant on scripts, like big player vs player maps or basic coop.

One can also question is Evolution map yet optimized as well as it could because I see frequent lag peaks when approaching cities for example.

The 2% of 100mbit line you stated means 2mbit but that is only ca.0.2 Mbytes = 200kb, surely that can't be correct if you've played with more two players on your server?

Ony my puny XP2500+ server 10 players on Evolution map eat like ca.600-800kb of upload bandwith and server FPS goes to 5-9.

Share this post


Link to post
Share on other sites
Barking up wrong tree?

Like I said bandwidth isnt the issue, on our "proper" 100mbit dedicated server with 2% usage at most?

Yes "Evo" is heavily scripted, and has also been heavily modified since its first incarnation.

Serverside FPS does drop due to the scripting, but actual CPU usage never goes over 60%. The only times we have noticed any real server lag has been during JIP.....It seems like the server engine doesnt share bandwidth equally to current players while updating new connections.

These are the observations of many players, not just me!

And asking if the server coding will get any further optimizations, Is that really barking up the wrong tree?

We are still trying to optimize the arma.cfg settings, so maybe we will find better settings in the mean time.

Sorry, didn't mean to be harsh. But basically I agree that optimizations for server-side scripts and such would be nice. I was only trying to emphasize that underlying netcode is not weak or unoptimized if you play maps which are not so heavily reliant on scripts, like big player vs player maps or basic coop.

One can also question is Evolution map yet optimized as well as it could because I see frequent lag peaks when approaching cities for example.

The 2% of 100mbit line you stated means 2mbit but that is only ca.0.2 Mbytes = 200kb, surely that can't be correct if you've played with more two players on your server?

Ony my puny XP2500+ server 10 players on Evolution map eat like ca.600-800kb of upload bandwith and server FPS goes to 5-9.

I've noticed while doing a #monitor that with 30 players typical server FPS is 2 and out is usually 600-850. However when people join the server the out jumps to 1200-1500.

Maybe more cooperation is needed between people who setup server configs.

Share this post


Link to post
Share on other sites

The outgoing bandwidth increases when a player joins, because the server has to synchronize him with the mission's current status. In the good ol' OFP days when we didn't have JIP, everyone had to play from start, so everyone was automatically synched.

Nowadays, when a mission like Evolution has been going on for a while, a joining player will recieve loads of information from the server. That's the loading bar you see before you actually start playing.

I believe the amount of information that gets transferred to JIP players has been reduced since 1.08, but I don't know how much we can do to remedy this using server configs.

Share this post


Link to post
Share on other sites

for lag problums via conecting players add

initBandwidth=768000; //not tested yet would love someone to test this

and

warping ai or people add

minerrortosend=0.001

Share this post


Link to post
Share on other sites

For high bandwidth servers, you can try to lower

MaxSizeNonguaranteed

MaxSizeGuaranteed

values, down to 128 if you have CPU power.

Lowering them step by step should show warp improvement, up to the point where too many packets sending impact the CPU, in which case, you'll see lag/desync again.

Share this post


Link to post
Share on other sites

Theres never been any helpful resource, for OFP or ArmA, that really explains these settings and how best to optimise/calculate them, it would be useful to have smile_o.gif

Share this post


Link to post
Share on other sites
Theres never been any helpful resource, for OFP or ArmA, that really explains these settings and how best to optimise/calculate them, it would be useful to have smile_o.gif

Indeed. Someone knowledgable about them (preferrably the devs), should write up detailed descriptions for them. At the moment, too many server config entries are not used because people don't have the faintest idea what they do.

Share this post


Link to post
Share on other sites

I agree, it would be nice to get a reply off Suma or whoever the guru is behind the server config values.

Share this post


Link to post
Share on other sites

the more i'm playing around with server configs the more i've come to the conclusion that major part of what is experienced as "lag" is caused by bad scripting in the user mission and has little or nothing to do with bandwidth or server performance.

this is not really suprising as there is no documentation whatsoever about how scripts affect realtime behaviour of the hole engine (at least i haven't found it yet).

probably the most prominent example is evolution. for instance, i tried playing it inside a LAN, tweaked and tested my server config with many different settings. result: moving objects lagging and warping around. always. no matter how many players are online or what the config looks like or how good your ping, bandwidth and server are. whereas other missions play smooth and fine... confused_o.gif

the ugly side is that people search for bottlenecks in the wrong place, assuming maybe that the server just needs better cpu, more ram and bandwidth optimization and finally when nothing of the above has helped BIS gets accused for releasing a buggy game...

maybe we just need a comprehensive ArmA scripting guide with special attention to realtime and multiplayer aspects.

Share this post


Link to post
Share on other sites

bandwith settings are easy just caculate 64kb min and 128kb max for each palyer times X number of palyers and convert to bits or use 256kb min 512kb max. see my list of mutiplayer commnads

Share this post


Link to post
Share on other sites

initBandwidth=768000;

What would this do to JIP?

It's only 96KB or 768Kb.

How would those numbers affect the Desync during JIP?

Share this post


Link to post
Share on other sites
initBandwidth=768000;

What would this do to JIP?

It's only 96KB or 768Kb.

How would those numbers affect the Desync during JIP?

same thing 96KB 768kb 768000 bits

i jsut notice people get to much bandwith when Conencting you can fool around with it

Share this post


Link to post
Share on other sites

what i get from Dedicated tunning WIKI is that its a Balannce of all.

MaxMsgSend=<limit>;

if set to 128 people get less data if set higher people get more data. this value depends on min/max bandwith

 

MaxSizeGuaranteed=<limit>;

defult in bytes 512 in guaranteed packet to players so thats 4.096 kilobits a Second i guess 5kb a person for non repeditive events like shooting

MaxSizeNonguaranteed=<limit>;

raiseing this value meens people get less bandwith for events like soldier or vehicle position. so a higher Value gives out more data for theys type of events.

MaxBandwidth= the full upload of server

so for a 20mbit server +

MaxMsgSend=1024;

MaxSizeGuaranteed=1024;

MaxSizeNonguaranteed=128;

MinBandwidth=8192000;

MaxBandwidth=16348000;

MinErrorToSend=000.5;

this all has to do With packet size and Frame Buffers if you took out a Packet sniffer and changed the settings around the packets would change probily

Share this post


Link to post
Share on other sites

I wouldn't like to say if this is a BIS or Kiljoy issue. Would be nice if both could look into it, though.

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  

×