Auch wenn dieser Beitrag schon 3 Monate alt ist, so antworte ich doch darauf aus zwei Gründen:
- Der Thread steht aktuell immer noch an zweiter Stelle in der Threadliste des Gameserver-Forums.
- Die Informationen, die ich mich anderen Usern teilen möchte werden hoffentlich (wenn jemand die Suchfunktion nutzt) das Erstellen eines ähnlichen Threads unnötig machen.
Zunächst einmal möchte ich verhindern, dass ein falscher Eindruck über die Leistungsfähigkeit der Server von netcup entsteht.
Ich betreibe gleich mehrere Minecraft Gameserver (Instanzen) auf eben einem solchen "Root-Server L" mit SSD (6. Generation) wie vom Threadersteller beschrieben.
Auch mit über 30 Usern läuft das Spiel noch absolut ohne Lags. Und das obwohl recht Ressourcenintensive Plugins installiert sind, wie etwa DynMap.
Die Probleme des Threaderstellers sind also in der Konfiguration zu suchen.
Daher an dieser Stelle ein paar Tips zur Konfiguration des Servers um diesen auf Performance zu optimieren.
Einige Punkte wurden von meinen Vorrednern bereits genannt (z.B. die Verwendung von Spigot) doch möchte ich in meinem Posting den Fokus darauf legen, klar verständliche und hilfreiche Hinweise zu geben.
Ich werde meine Tips staffeln nach Hinweisen für Einsteiger (E), Fortgeschrittene (F) und Profis (P).
Übersicht
- Wahl der Linux Distribution
- Partitionen für Minecraft optimieren
- Partitionen für SSD optimieren
- Installation von Spigot
- Konfiguration der Minecraft Server Instanz
Wahl der Linux Distribution
E:
Hier kann man theoretisch nicht viel falsch machen. Denn Im Grunde läuft Minecraft auf jeder Distribution!
Wenn man keine Systemressourcen an ungenutzte Dienste verschwenden möchte, sollte man diese entweder deaktivieren oder eine Distribution wählen, welche mit sehr wenig vorinstallierten Paketen kommt.
F:
Sollte die Distribution einem die Wahl zwischen generischen Paketen (z.B. x86_64) und CPU-Optimierten Paketen (z.B. Intel64-haswell) lassen, sollte man die optimierten Pakete nehmen.
Hierbei gilt jedoch zu beachten dass die Wahl eines für die falsche CPU optimierten Paketes unter Umständen dazu führt dass das System schlechter oder garnicht läuft. Bei Optimierten Pekaten ist immer zu prüfen, ob diese für die jeweilige CPU-Architektur ausgelegt sind.
Hintergrund ist, dass man ein Programm so kompillieren (= vom Quellcode in Maschinencode übersetzen) kann dass es auf möglichst vielen CPU-typen läuft (was die meisten Distributionen machen), oder aber es auf eine Architektur optimieren kann, wodurch bei einem Intel-Optimierten Programm zum Beispiel alles weggelassen werden kann was speziell für AMD CPUs ist.
Wenn man sich unsicher ist, ist man aber mit den Generischen Paketen besser beraten! Der Performance-Zuwachs liegt geschätzt im einstelligen %-Bereich.
P:
Ich selber verwende eine Distribution, welche alle Pakete CPU-optimiert
aus dem Quellcode kompilliert. Ich nenne den Namen bewusst nicht um
Anfänger nicht auf eine Fährte zu locken, die von sehr viel Frust
geprägt sein kann, wenn man nicht wirklich weiß was man da tut. Profis werden sicher wissen oder schnell herausfinden wovon ich rede.
Partitionen für Minecraft optimieren
E:
Beim Einrichten der Festplatte lege mindestens folgende Partitionen mit den genannten Dateisystemen an:
-
/boot gemäß Empfehlung der Distribution. Wenn keine genannt ist wähle 128 MB und als Dateisystem ext2
-
swap Doppelt so groß wie dein RAM
-
/ Ich empfehle als Dateisystem ext4, die Größe hängt davon ab wieviel Software Du neben Minecraft installieren möchtest. 30 GB sollten fast immer ausreichen
-
/minecraft Lege eine gesonderte Partition für Minecraft an. Ich empfehle die Formatierung mit XFS da dieses Dateisystem performanter bei kleinen Datein ist wie ext4.
Anmerkung zum Swap:
Richte eine großzügige SWAP-Partition ein. Diese wird zwar optimalerweise nie benötigt, aber im Fall der Fälle dass dein RAM
vollaufen sollte kann SWAP die Stabilität des Servers (unter Geschwindigkeitseinbußen!!) gewärleisten. Permanentes Swappen macht den Server jedoch nicht nur langsam, sondern ist auch äußerst ungesund für die SSD.
Prüfe von Zeit zu Zeit mit dem Befehl "free -h" die Auslastung von RAM und Swap. Sollten unter normalen Betriebsbedingungen jemals mehr als ein paar wenige MB im Swap liegen, überprüfe dringend Dein Setup oder denke über ein Upgrade auf einen Server mit mehr RAM nach!
Anmerkung zur Minecraft Partition:
Da Minecraft die Weltkarte in Form vieler kleiner Datein ablegt ergeben sich Performancegewinne aus der Verwendung des XFS Dateisystems. Ähnliches gilt für Plugins wie z.B. DynMap.
Das Speichern von Minecraft auf einer gesonderten Partition verhindert zudem dass dein Linux nicht wegen einer vollgelaufenen Festplatte stehen bleibt, sollten bei Minecraft aus irgend einem Grund enorm viele Daten erzeugt werden (z.B. viel zu große DynMap oder ein defektes Plugin das in eine Schreib-Endlosschleife gerät).
Partition für SSD optimieren
E:
Aktiviere die TRIM-Funktion der SSD.
Sollte Deine Distribution beim Partitionieren und Formatieren der Festplatte keine entsprechende Option anbieten, ist dies eher etwas für Fortgeschrittene User.
F:
TRIM Manuell aktivieren
Editiere die Datei /etc/fstab und gebe bei den Dateisystemparametern die für das Dateisystem entsprechende Kommando ein.
Für EXT4 sähe dies Beispielsweise wie folgt aus:
/dev/vda3 / ext4 noatime,discard 0 1
noatime unterdrückt dass bei jedem lesenden dateizugriff die access-time aktualisiert wird, was unnötige Schreiboperationen verursacht.
discard aktiviert automatisches Anwenden der TRIM funktion der SSD.
P:
Optimiere das Alignment der Partitionen.
Dies muss natürlich beim Partitionieren und vor dem Erstellen der Dateisysteme erfolgen.
Wenn Du die SSD mit fdisk partitionierst wähle zuerst die Option "g - create new empty GPT partition table".
Damit weichst du vom Standard-DOS Kompatiblen Partitionsschema ab. GPT ist nicht auf 4 primäre Partitionen beschränkt und achtet bei SSDs auf ein richtiges Allignment.
Nun lege wie gewohnt Partitionen an. Abgesehen davon dass die Wahl zwischen Primärer und Extended Partition entfällt ändert sich nicht viel. Jedoch beim festlegen der Partitionstypen haben sich gegenüber dem üblichen DOS kompatiblen Partitionsschema die disk-layout bezeichnungen geändert. Drücke L für eine Übersicht! Zum Beispil ist eine Linux-Swap Partition nun nicht mehr vom Typ "82" sondern "14".
Außerdem solltest Du eine 3MB kleine Partition vom Typ "4 - BIOS Boot" anlegen, wenn Du zu BIOS kompatibel bleiben möchtest.
Hier wird Grub ein paar bootrelevante Daten ablegen, die bei einem DOS-Kompatiblen Partitionsschema im MBR landen.
Diese Partition muss nicht in der /etc/fstab eingetragen werden, da sie nie gemountet wird.
<fortsetzung folgt>