- Offizieller Beitrag
Stand: 11. Dez 2015
== Überblick ==
Eine Basic.cfg kann optional jedem ArmA 3 Server hinzugefügt werden und enthält verschiedene Parameter um die Serverperformance zu verbessern. Auch der Client, also Spieler kann sich eine solche Config anlegen und zusammen mit seinem ArmA 3 über einen [lexicon='Startparameter'][/lexicon] im Launcher starten um seine Spielerfahrung gegebenenfalls zu verbessern.
ACHTUNG: Eine fehlerhaft eingestellte Basic.cfg kann Performanceprobleme und Lags zur Folge haben. Ihr werdet eventuell einige Zeit herumprobieren müssen bis ihr die perfekten Einstellungen für euren Server gefunden habt.
Alle Werte in der Basic.cfg gelten Pro Spieler (!) und nicht für den kompletten Server Ansich. Daran solltet ihr stets denken.
Um eine Basic.cfg auf eurem Server zu aktivieren erstellt diese Datei und schiebt sie in euren ArmA 3 Serverordner. Anschließend fügt ihr folgenden [lexicon='Startparameter'][/lexicon] zu eurem Server hinzu: -cfg=Basic.cfg
== Mögliche Parameter ==
Folgende Parameter oder Optionen könnt ihr in eurer Basic.cfg verwenden:
- MaxMsgsend
- MaxSizeGuaranteed
- MaxSizeNonguaranteed
- MinBandwith
- MaxBandwith
- MinErrorTosend
- MinErrorToSendNear
Die folgenden Parameter werden standartmäßig vom Server gesetzt und sollten nicht verändert werden:
- language
- adapter
- 3D_Performance
- Resolution_W
- Resolution_H
- Resolution_Bpp
=== Parameter Bedeutungen ===
Im folgenden möchte ich euch Die Bedeutung und Funktion dieser Parameter etwas näher erklären.
- MaxMsgSend
Dieser Wer bestimmt die maximale Anzahl an Paketen welche pro Frame gesendet werden können. Der Standartwert liegt bei 128 und kann bei Servern mit hoher Anbindung (1GBit oder mehr) erhöht werden um Lags zu reduzieren.
- MaxSizeGuaranteed
Durch MaxSizeGuaranteed wird die maximale Größe der garantierten Pakete in Bytes festgelegt. Diese Einstellung hat Einfluss auf Events welche im Spiel nicht zu häufig stattfinden, schießereien zum Beispiel. Der Standartwert liegt hier bei 512 und sollte immer größer sein als MaxMsgSend.
- MaxSizeNonguaranteed
Hierdurch wird die maximale Größe von nicht garantierten Paketen in Bytes festgelegt. Diese Einstellung hat Einfluss auf häufige Events wie Updates von Fahrzeug- oder Spielerpositionen. Der Standartwert liegt bei 256.
- MinBandwith
Hier wird die Bandbreite in BPS angegeben welche eurem Server jederzeit zur Verfügung steht. Dieser Wert wollte recht klein gehalten werden, jedoch nicht zu klein. Dies hilft dem Server die Verfügbare Bandbreite einzuschätzen.
- MaxBandwidth
Dieser Wert sollte die Bandbreite eures Servers in BPS sein welche er nie erreichen wird. Auch dieser Wert hilft dem Server die Verfügbare Bandbreite besser einzuschätzen.
- MinErrorToSend
Ich habe länger überlegt wie ich diesen Wert am besten beschreibe und mir ein Beispiel dazu überlegt, bin dann jedoch auf dieses hier gestoßen und hätte es warscheinlich nicht annähernd so gut hinbekommen wie eulerfoiler (Achtung Mathe und Englisch):
A unit 1km (distance d = 1km) from the player with MinErrorToSend = 0.001 (METS = 0.001) would send an update when that unit moves50m (error value E = 50). In reality, other factors about the object are taken into effect as well according to an (unknown) weighted scale. When the enginecalculates the error between the master copy of the object (whoever "owns" the object) and the client's perceived/simulatedcopy and that error value (E) exceeds MinErrorToSend (METS), a network update message/packet will be sent for itFormula: d = sqrt[(20E)/METS] ; 1000 = sqrt[(20E)/0.001] -> E = 50
- MinErrorToSendNear
Hier das gleiche wie bei MinErrorToSend:
When using MinErrorToSend alone, for small values of d the frequency of high errors (E) would cause excessive network updates that are not necessaryMinErrorToSendNear (METSN) does not take distance into account and is not derived from a formula.It's a staticly chosen value used as the minimum overall error value (E) before a network update message/pack will be sent
== Tips ==
Die Ultimative Config gibt es leider nicht. Wir haben damals fast einen Monat experimentiert bis wir genau die Einstellungen gefunden haben welche zu unserem Server und der Spielernazahl gepasst haben. Letztendlich liefen 2 Server mit jeweils 75 Slots ohne große Probleme auf einem Rootserver mit folgenden Spezifikationen:
- Xeon E5 3.8GHz
- 64GB ECC RAM
- SSDs (Softwareraid)
- 1GBit Anbindung
Server als auch Datenbank liefen in einer RAM-Disk, also im Arbeitsspeicher des Servers. Mehr dazu und eine Anleitung findet ihr ebenfalls bald in unserer Wissensdatenbank.
=== Arma Server Monitor ===
Um die [lexicon='Performance'][/lexicon] eures servers zu überwachen empfiehlt es sich den Arma Server Monitor zu nutzen welchen ihr in unserem Downloadbereich finden könnt.
Ein Eintrag dazu befindet sich ebenfalls bald in unserer Wissensdatenbank. ArmA Server Monitor Download
=== Beispiel Config ===
Hier findet ihr ein Beispiel einer Basic.cfg welche bei einem Server mit 1GBit Anbindung keine großen Probleme bereiten sollte.
MaxBandwidth = 838860800;
MinBandwidth = 1048576;
MaxSizeGuaranteed = 512;
MaxSizeNonguaranteed = 128;
MaxMsgSend = 256;
MinErrorToSend = 0.001;
MinErrorToSendNear = 0.01;
adapter=-1;
3D_Performance=1;
Resolution_W=0;
Resolution_H=0;
Resolution_Bpp=32;
terrainGrid=25;
viewDistance=2000;
Windowed=0;
Alles anzeigen