Minecraft Server dauerhaft hinterher?
Mein Paper 1.21.4 Server teilt mir ständig folgendes mit, auch wenn nicht mal wer Online ist: [16:30:11 WARN]: Can't keep up! Is the server overloaded? Running 2553ms or 51 ticks behind
2 Antworten
Dann sind eins von drei Dingen das Problem:
- Der Server hat zu wenig CPU
- Der Server hat zu wenig RAM
- Der Server ist nicht optimiert oder hat irgendwelche Memory leaks etc.
Von 400% macht nur wenig Sinn, außer du nutzt Petero der in Kernen rechnet.
Welcher Server-Hoster?
Ja, ist Pterodactyl und als Hoster nutze ich aktuell 24 Fire
Prozessor: 4 Kern AMD EPYC 7443P
Ram: 16 GB(es waren vorher auch 16, ich habe keine 18 zugewiesen)Samsung registered DDR4 ECC 3200 MHz
speicher:100GB
Samsung NVMe SSD PM9A3
4 Kern AMD EPYC 7443P
Da ist der erste Fehler.
Für Game-Server speziell Minecraft ist die AMD EPYC nicht ausgelegt, da sie sehr auf Multicore Performance und wenig auf Singlecore Performance geht.
Die CPU ist absolut unpassend.
Wechsel lieber zu den AMD Rycen 9 KVMs
Ram: 16 GB(es waren vorher auch 16, ich habe keine 18 zugewiesen)Samsung registered DDR4 ECC 3200 MHz
Nächstest Problem.
Weiße auf keinen Fall allen RAM dem Minecraft Server zu. Sonst kann der Linux Server und Docker host nicht mehr Atmen (hat keinen RAM mehr), wenn Minecraft mal mehr zieht. Ich habe als Faustregel immer Max. 85% des Rams zuweisen. Sprich bei dir wären das 13,6GB Ram ums schöner zu haben 13GB Ram (2GB ist fürs OS dann doch etwas wenig, daher abgerundet).
Weiße also dem Minecraft Server fixe 13GB hinzu und schau da er nicht mehr brauchen darf.
Was hast du denn als Server-Software drauf (Spigot, Paper, Purpur, Forge)? Wenn du Mods/Plugins nutzt welche nutzt du? Wie viele Spieler nutzen den Server max. gleichzeitig?
Ich Wechsel dann mal auf einen Ryzen 9 und habe dem Server nur noch 12 Gb zu gewiesen, mehr zieht der eh nicht. Ich nutze Paper 1.21.4 und habe 17 Plugins und durchschnittlich als Community Server so 10 Spieler
Welche Plugins währen das und kannst du mir mal einen Spark report geben.
wie macht man einen Spark Report? CoreProtect,ElytraGuards, Essentials+Chat, InvSeePlusPlus, LiteBans, LuckPerms,packetevents, PlaceholderAPI,PremiumVanish, ProtocolLib,TAB,Vault,Vi a,voicechat,Vulcan, WorldEdit
https://www.spigotmc.org/resources/spark.57242/ bzw am besten von der offizellen Website https://spark.lucko.me/, dass Plugin installieren und dann server neustart und am Anfang /spark profiler start eingeben (Konsole) und nach so 15 Minuten wo dieser benutzt wurde und solche Nachrichten kommen /spark profiler open eingeben und hier den Link uns senden.
Damit können wir dann die Performance Statistik, configs, installiere Plugins, Graphen etc. sehen um dein Problem zu debuggen.
"Unable to load the data. Perhaps it expired? Are you using a recent version?"
Mach nachmal /spark profiler open und schicks.
Da war ich wohl zu langsam.
Der ganze Log ist voll mit Rot und Server behind: https://spark.lucko.me/zA02ha05GX
Paste den GESAMTEN Log in https://privatebin.net und schick uns dan denn Link den du generierst.
Da kann ich dann sehen was der Error ist. Spark scheint hier nicht mehr zu funktionieren.
Joa öhhh...
Ich bin überrascht das der Server überhaupt läuft und nicht direkt nach dem Start abstürtzt. Sind die Errors erst nach der Installation von Spark gekommen oder waren diese vorher auch schon ab und an da?
Die Errors sagen nichts anderes aus als das ein Minecraft Thread nicht mehr weiterlaufen kann und blockiert/angehalten ist.
Kann ich schwer sagen, aber solche kommen/kamen beispielsweise auch vorher schon: https://privatebin.net/?26e38f1040309042#HBDoBdckoPhXDdqhpF3DLPv7VgsRLivAxuvQK6B8rMfX
Ich starte den Server mal neu und schick dann gleich mal eine vollständigen Log
Ist immer eine Frage, der zeit und so bisschen Zufall, ob was kommt, aber ich kann dir den Log vom letzen Mal mal ganz senden, warte: https://privatebin.net/?48f748b405870d34#B628CPssJJYytxmT5HWEdxu7LPWaf1tdaaczxpwioKDV
Versuch jetzt mal einen Spark report mit /spark profiler open.
Starten sollte der autoamtisch beim Server start.
Und geh mal per SSH auf die Linux kiste und füge einen Screenshot von HTOP ein.
(sudo apt update, sudo apt install htop, htop – wenn du Debian hast)
Ich habe Ubuntu 24.04. das ist der aktuelle Spark Profiler, aber noch ohne error:https://spark.lucko.me/Tlg66eGYds
Wir haben das Problem.
Wenn du auf den Link klickst dann siehst du oben eine Leiste und Rechts davon einen Bereich mit "Memory(process)" dort steht wie viel RAM dein Server gerade verbaucht/ wie viel er zugewiesen hat.
Aus irgendeinem Grund hat dein Server nur 1.7GB Ram zur Verfügung.
Okay und wie beheben wir sowas? Bei Ptero hat er 12 GB also 12000
12000
Das wäre die Dezimale schreibweise. Ich würde dir bei sowas immer die Binäre empfehlen. Also 12290.
Okay und wie beheben wir sowas?
Schick mir mal bitte einen Screenshot von den Ptero. Einstellungen wo du den RAM etc. anpassen kannst und von den JVM-flags/Start-up Flags/Start command.
Server Ram etc:https://jmp.sh/s/xj5r1W9rQNJAXLvEE4ii Startup:https://jmp.sh/s/E0uwpCEoX3xFRmofsZKe
CPU-Limit: 300%;
allocated RAM: 12290;
allocated SWAP: 1024;
Diskspace-limit: 20480
Das wäre sichere und richtigere Werte.
JVM-Startup-command:
java -Xms12G -Xmx12G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar --nogui
Das da oben sind die Aikaire Startup flags. Das zu erklären würde den Rahmen massivst sprengen. Wenn du mehr über das wissen willst: https://docs.papermc.io/paper/aikars-flags/
Du setzt jetzt die Werte so wie ich es dir oben gennant habe und änderst den Start-UP command so um wie ich es dir oben geschrieben habe.
Dannach startest du den Server sendest mir den Log und den Spark profiler.
Der Startup Command geht nicht:https://privatebin.net/?e9a93c4de2f25513#FxUUe8oWnmLxHn69owvcZeBd17rETTp4j4Ls6T5GhVRt
Mhhhh..
[Pterodactyl Daemon]: ---------- Detected server process in a crashed state! ----------
[Pterodactyl Daemon]: Exit code: 137
[Pterodactyl Daemon]: Out of memory: true
[Pterodactyl Daemon]: Checking server disk space usage, this could take a few seconds...
[Pterodactyl Daemon]: Updating process configuration files...
[Pterodactyl Daemon]: Ensuring file permissions are set correctly, this could take a few seconds...
Der Linux Server hat an sich nicht genug RAM zur verfügung.
Geh mal per SSH rein un Zeig mir den Output von HTOP. Die obrigen Befehle dafür gehen auch bei Ubuntu.
Also (sudo apt update; sudo apt install htop -y; htop)
Hier passt es aber: https://jmp.sh/s/zFrO8buXiZrwIM21opRf
Okay, gut.
Ich glaube das war mein Fehler. Habe gerade kurz nicht mitgedacht.
java -Xms11G -Xmx11G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar --nogui
Das wären die Korrekten. Der Docker Container hat insgesamt 12GB frei. Wenn du nun die gesamten 12GB für den Mineacraft Server reservierst, dann hat der Docker container nichts mehr. Daher will der mit 12GB nicht starten. Wir geben also dem gesamten Docker container 12GB und Minecraft nutzt davon 11GB, somit hat der Container an sich 1GB frei. Das ist zwar etwas overkill, aber fine tunen können wir später sobald das eigentliche Problem gelöst ist.
Starten tut er ja, jetzt nur testen, ob Crashes etc bleiben
Er ist wegen Out of Memory gecrasht denke ich
Und HTOP während der Server läuft und solche Error kommen.
Hier der Profiler https://spark.lucko.me/csjL3HRyij
Hab während du am Server über Ptero arbeitest per SSH htop offen und sobald solche Error kommen Screenhsotest du htop und schickst es mir.
Springt halt direkt alles auf 100% aber okay
Alles auch Memory aber auch die CPU auch 100% ja
RAM wirklich 100%? Wir haben auf 12GB limitiert. Und die CPU wirklich auf allen 4 Kernen?
Nun ja. Er darf und kann nicht mehr als 11GB brauchen, daher wird er auch nie die 16GB auf dem Linux Server füllen.
Dass die CPU aber so ausgelastet ist wundert mich schon sehr.
Ich kann dir auch einfach mal mein Pterodactyl Login geben, dass bringt ja so eh nichts
Dafür wäre es aber vermutlich besser, wenn wir auf eine etwas privatere und sicherere Kommunikation wechseln.
Ich kann dir Signal, SimpleX oder Briar anbieten.
IM Zweifelsfall ist Discord auch möglich, aber das eher ungern.
Ich habe dir ne FA auf GF geschreiben wo der Link oder der Nutzername für Signal steht. Musst sie nicht annehmen, aber da sind die Infos die du brauchst.
Wow ihr habt mich in dieser ewig langen Konversation so gehookt bekommen, dass ich gerne wissen wollen würde wenn ihr es löst/wie ihr es gelöst habt (:
Wenn ich selber nochwas dazusteuern könnte:
Die Konkreten Java Fehler zeigen ein Freezen beim Beschreiben der Festplatte an (Thread versucht das schreiben, das braucht aber ungewöhlich lange), der häufigste Fehler ist da, dass von 24 fire die Festplatten Oversellt werden und deswegen nicht schnell genug I/O Operationen ausführen können. Kannst natürlich auch du selber sein welcher zu viele IO Operationen ausführt:
Wenn das unter 100MB/s anzeigt, Oversellt 24fire und das Problem liegt 100% daran:
dd if=/dev/zero of=testfile bs=1G count=1 oflag=dsync
Sonst hiermit sehen was gerade auf deinem KVM alles IO Operationen ausführt:
iotop -o
Dann hat der Server nicht genug Leistung.
Also die CPU ist dauerhaft nur bei so 20% von 400% und RAM ist 18 GB und auch nie voll
Also die CPU ist dauerhaft nur bei so 20% von 400% und RAM ist 18 GB und auch nie voll und was das dritte ist keine Ahnung…..