d3nn16
Jul 17 2011, 02:00
Hi
Some months ago I was looking for a best practise guide on how to configure a dedicated arma server for best performance.
I found out about the basic configuration file (specified using the -cfg parameter in the shortcut) that looks like this :
language="German";
adapter=-1;
3D_Performance=-4194304;
Resolution_Bpp=32;
Resolution_W=0;
Resolution_H=0;
MaxMsgSend=128;
// Maximum number of messages that can be sent in one simulation cycle.
// Increasing this value can decrease lag on high upload bandwidth servers.
// Default: 128
MaxSizeGuaranteed=512;
// Maximum size of guaranteed packet in bytes (without headers). Small messages
// are packed to larger frames. Guaranteed messages are used for non-repetitive
// events like shooting.
// Default: 512
MaxSizeNonguaranteed=256;
// Maximum size of non-guaranteed packet in bytes (without headers).
// Non-guaranteed messages are used for repetitive updates like soldier or
// vehicle position. Increasing this value may improve bandwidth requirement,
// but it may increase lag.
// Default: 256
// 256 KB x 64 = 16384000
// 512 KB x 64 = 32768000
// 1024 KB x 64 = 65536000
MinBandwidth=16384000;
// Bandwidth the server is guaranteed to have (in bps). This value helps server
// to estimate bandwidth available. Increasing it to too optimistic values can
// increase lag and CPU load, as too many messages will be sent but discarded.
// Default: 131072
MaxBandwidth=32768000;
// Bandwidth the server is guaranteed to never have. This value helps the server
// to estimate bandwidth available.
MinErrorToSend=0.008;
// Minimal error to send updates across network. Using a smaller value can make
// units observed by binoculars or sniper rifle to move smoother.
// Default: 0.01
MaxCustomFileSize=50000;
//Users with custom face or custom sound larger than this size are kicked when trying to connect.
I could find many threads about this configuration file but none having a clear explanation on how the parameters were linked between them :
http://forums.bistudio.com/showthread.php?t=193&highlight=maxmsgsend
http://forums.bistudio.com/showthread.php?t=5502&highlight=maxmsgsend&page=2
http://forums.bistudio.com/showthread.php?t=9111&highlight=maxmsgsend
http://forums.bistudio.com/showthread.php?t=9507&highlight=maxmsgsend
http://forums.bistudio.com/showthread.php?t=288&highlight=maxmsgsend
http://forums.bistudio.com/showthread.php?t=7863&highlight=maxmsgsend&page=4
http://www.flashpoint1985.com/cgi-bin/ikonboard301/ikonboard.cgi?act=ST;f=2;t=167;hl=suma
http://forums.bistudio.com/showthread.php?t=12944&highlight=maxmsgsend
http://www.flashpoint1985.com/cgi-bin/ikonboard301/ikonboard.cgi?act=ST;f=2;t=8959;st=20
http://forums.bistudio.com/showthread.php?t=18695&highlight=maxmsgsend&page=2
http://forums.bistudio.com/showthread.php?t=25698&highlight=maxmsgsend
http://forums.bistudio.com/showthread.php?t=88809&highlight=maxmsgsend
http://www.kellys-heroes.eu/files/tutorials/dedicated/
A partial explanation can be found in the Wiki but nothing clear enough to allow me to know exactly what values to use for the various parameters.
So I tried to come up with a formula :
We start with the bandwidth parameters. Lets say I have 20Mbps for the MinBandwidth parameter (I suppose this bandwidth will be used for "guaranteed messages"). And 40Mbps for the MaxBandwidth parameter (I suppose (MaxBandwidth - MinBandwidth) bandwidth will be used for "non guaranteed messages").
Now we can compute the number of messages we can send for both types (guaranteed and not):
* number of guaranteed messages that can be sent when MaxSizeGuaranteed = 512 Bytes, MinBandwidth = 20 000 000 bps (IP packet header is 20 Bytes)
20 000 000 / ((512 + 20) * 8) = 4 699 messages
* number of non-guaranteed messages that can be sent when MaxSizeNonguaranteed = 256 Bytes, MinBandwidth = 20 000 000 bps, MaxBandwidth = 40 000 000 bps, (IP packet header is 20 Bytes)
(40 000 000 - 20 000 000) / ((256 + 20) * 8) = 9 057 messages
* so there can be 4 699 + 9 057 = 13756 messages sent each second
* maximum simulation cycles per second are 50 (from 50 fps, the arma server maximum fps), so number of messages per simulation cycle is MaxMsgSend
MaxMsgSend = 13756 / 50 = 275
I have no idea if this formula is correct but at least it shows what I am looking for. (I tested this on a dedicated server but there was still some lag, someone told me because I also used the cpuCount and exThreads parameters).
The other part on performance configuration is about shortcut parameters like -cpuCount, -exThreads and -maxmem.
Apparently -cpuCount, -exThreads are useless http://forums.bistudio.com/showthread.php?t=120446&highlight=cores. Is it still true in the latest beta-patch ?
What is the current maximum ram that arma can use now ? wiki says 2047 for ArmA 1.01 and in ftp://downloads.bistudio.com/arma2.com/update/beta/ARMA2_OA_Build_82604.log I see this:
[71721] Game is now Large Address Aware, should improve stability and allow using more RAM with 64b OS.
Thanks
Some months ago I was looking for a best practise guide on how to configure a dedicated arma server for best performance.
I found out about the basic configuration file (specified using the -cfg parameter in the shortcut) that looks like this :
language="German";
adapter=-1;
3D_Performance=-4194304;
Resolution_Bpp=32;
Resolution_W=0;
Resolution_H=0;
MaxMsgSend=128;
// Maximum number of messages that can be sent in one simulation cycle.
// Increasing this value can decrease lag on high upload bandwidth servers.
// Default: 128
MaxSizeGuaranteed=512;
// Maximum size of guaranteed packet in bytes (without headers). Small messages
// are packed to larger frames. Guaranteed messages are used for non-repetitive
// events like shooting.
// Default: 512
MaxSizeNonguaranteed=256;
// Maximum size of non-guaranteed packet in bytes (without headers).
// Non-guaranteed messages are used for repetitive updates like soldier or
// vehicle position. Increasing this value may improve bandwidth requirement,
// but it may increase lag.
// Default: 256
// 256 KB x 64 = 16384000
// 512 KB x 64 = 32768000
// 1024 KB x 64 = 65536000
MinBandwidth=16384000;
// Bandwidth the server is guaranteed to have (in bps). This value helps server
// to estimate bandwidth available. Increasing it to too optimistic values can
// increase lag and CPU load, as too many messages will be sent but discarded.
// Default: 131072
MaxBandwidth=32768000;
// Bandwidth the server is guaranteed to never have. This value helps the server
// to estimate bandwidth available.
MinErrorToSend=0.008;
// Minimal error to send updates across network. Using a smaller value can make
// units observed by binoculars or sniper rifle to move smoother.
// Default: 0.01
MaxCustomFileSize=50000;
//Users with custom face or custom sound larger than this size are kicked when trying to connect.
I could find many threads about this configuration file but none having a clear explanation on how the parameters were linked between them :
http://forums.bistudio.com/showthread.php?t=193&highlight=maxmsgsend
http://forums.bistudio.com/showthread.php?t=5502&highlight=maxmsgsend&page=2
http://forums.bistudio.com/showthread.php?t=9111&highlight=maxmsgsend
http://forums.bistudio.com/showthread.php?t=9507&highlight=maxmsgsend
http://forums.bistudio.com/showthread.php?t=288&highlight=maxmsgsend
http://forums.bistudio.com/showthread.php?t=7863&highlight=maxmsgsend&page=4
http://www.flashpoint1985.com/cgi-bin/ikonboard301/ikonboard.cgi?act=ST;f=2;t=167;hl=suma
http://forums.bistudio.com/showthread.php?t=12944&highlight=maxmsgsend
http://www.flashpoint1985.com/cgi-bin/ikonboard301/ikonboard.cgi?act=ST;f=2;t=8959;st=20
http://forums.bistudio.com/showthread.php?t=18695&highlight=maxmsgsend&page=2
http://forums.bistudio.com/showthread.php?t=25698&highlight=maxmsgsend
http://forums.bistudio.com/showthread.php?t=88809&highlight=maxmsgsend
http://www.kellys-heroes.eu/files/tutorials/dedicated/
A partial explanation can be found in the Wiki but nothing clear enough to allow me to know exactly what values to use for the various parameters.
So I tried to come up with a formula :
We start with the bandwidth parameters. Lets say I have 20Mbps for the MinBandwidth parameter (I suppose this bandwidth will be used for "guaranteed messages"). And 40Mbps for the MaxBandwidth parameter (I suppose (MaxBandwidth - MinBandwidth) bandwidth will be used for "non guaranteed messages").
Now we can compute the number of messages we can send for both types (guaranteed and not):
* number of guaranteed messages that can be sent when MaxSizeGuaranteed = 512 Bytes, MinBandwidth = 20 000 000 bps (IP packet header is 20 Bytes)
20 000 000 / ((512 + 20) * 8) = 4 699 messages
* number of non-guaranteed messages that can be sent when MaxSizeNonguaranteed = 256 Bytes, MinBandwidth = 20 000 000 bps, MaxBandwidth = 40 000 000 bps, (IP packet header is 20 Bytes)
(40 000 000 - 20 000 000) / ((256 + 20) * 8) = 9 057 messages
* so there can be 4 699 + 9 057 = 13756 messages sent each second
* maximum simulation cycles per second are 50 (from 50 fps, the arma server maximum fps), so number of messages per simulation cycle is MaxMsgSend
MaxMsgSend = 13756 / 50 = 275
I have no idea if this formula is correct but at least it shows what I am looking for. (I tested this on a dedicated server but there was still some lag, someone told me because I also used the cpuCount and exThreads parameters).
The other part on performance configuration is about shortcut parameters like -cpuCount, -exThreads and -maxmem.
Apparently -cpuCount, -exThreads are useless http://forums.bistudio.com/showthread.php?t=120446&highlight=cores. Is it still true in the latest beta-patch ?
What is the current maximum ram that arma can use now ? wiki says 2047 for ArmA 1.01 and in ftp://downloads.bistudio.com/arma2.com/update/beta/ARMA2_OA_Build_82604.log I see this:
[71721] Game is now Large Address Aware, should improve stability and allow using more RAM with 64b OS.
Thanks