Minecraft Server dauerhaft hinterher?

2 Antworten

Von Experte Floinki bestätigt

Dann sind eins von drei Dingen das Problem:

  1. Der Server hat zu wenig CPU
  2. Der Server hat zu wenig RAM
  3. Der Server ist nicht optimiert oder hat irgendwelche Memory leaks etc.
Woher ich das weiß:Berufserfahrung – Netzwerktechniker & Programmierer

NicDevTV 
Beitragsersteller
 24.04.2025, 18:44

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…..

Written5423  24.04.2025, 18:47
@NicDevTV

Von 400% macht nur wenig Sinn, außer du nutzt Petero der in Kernen rechnet.
Welcher Server-Hoster?

NicDevTV 
Beitragsersteller
 24.04.2025, 18:49
@Written5423

Ja, ist Pterodactyl und als Hoster nutze ich aktuell 24 Fire

NicDevTV 
Beitragsersteller
 24.04.2025, 18:53
@Written5423

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

Written5423  24.04.2025, 18:58
@NicDevTV
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?

NicDevTV 
Beitragsersteller
 24.04.2025, 19:06
@Written5423

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

Written5423  24.04.2025, 19:09
@NicDevTV

Welche Plugins währen das und kannst du mir mal einen Spark report geben.

NicDevTV 
Beitragsersteller
 24.04.2025, 19:15
@Written5423

wie macht man einen Spark Report? CoreProtect,ElytraGuards, Essentials+Chat, InvSeePlusPlus, LiteBans, LuckPerms,packetevents, PlaceholderAPI,PremiumVanish, ProtocolLib,TAB,Vault,Vi a,voicechat,Vulcan, WorldEdit

Written5423  24.04.2025, 19:18
@NicDevTV

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.

Written5423  24.04.2025, 19:53
@NicDevTV

"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.

Written5423  24.04.2025, 19:55
@NicDevTV

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.

Written5423  24.04.2025, 20:02
@NicDevTV

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.

NicDevTV 
Beitragsersteller
 24.04.2025, 20:10
@Written5423

Ich starte den Server mal neu und schick dann gleich mal eine vollständigen Log

Written5423  24.04.2025, 20:23
@NicDevTV

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)

Written5423  24.04.2025, 20:29
@NicDevTV

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.

NicDevTV 
Beitragsersteller
 24.04.2025, 20:32
@Written5423

Okay und wie beheben wir sowas? Bei Ptero hat er 12 GB also 12000

Written5423  24.04.2025, 20:34
@NicDevTV
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.

Written5423  24.04.2025, 20:47
@NicDevTV

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.

Written5423  24.04.2025, 20:51
@NicDevTV

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)

Written5423  24.04.2025, 20:56
@NicDevTV

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.

NicDevTV 
Beitragsersteller
 24.04.2025, 21:09
@Written5423

Starten tut er ja, jetzt nur testen, ob Crashes etc bleiben

Written5423  24.04.2025, 21:21
@NicDevTV

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.

NicDevTV 
Beitragsersteller
 24.04.2025, 21:23
@Written5423

Alles auch Memory aber auch die CPU auch 100% ja

Written5423  24.04.2025, 21:23
@NicDevTV

RAM wirklich 100%? Wir haben auf 12GB limitiert. Und die CPU wirklich auf allen 4 Kernen?

Written5423  24.04.2025, 21:26
@NicDevTV

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.

NicDevTV 
Beitragsersteller
 24.04.2025, 21:27
@Written5423

Ich kann dir auch einfach mal mein Pterodactyl Login geben, dass bringt ja so eh nichts

Written5423  24.04.2025, 21:29
@NicDevTV

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.

Written5423  24.04.2025, 21:31
@NicDevTV

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.

Floinki  25.04.2025, 00:24
@Written5423

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 (:

Floinki  25.04.2025, 00:33
@Floinki

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.


NicDevTV 
Beitragsersteller
 24.04.2025, 18:45

Also die CPU ist dauerhaft nur bei so 20% von 400% und RAM ist 18 GB und auch nie voll