28.08.2026
Warum deinem Minecraft-Server der RAM ausgeht — und wie du es behebst (2026)

Wenn dein Minecraft-Server unter Last abstürzt, nach einem Neustart nicht mehr hochkommt oder genau beim Speichern der Welt stirbt — dann liegt es meistens nicht an zu wenig RAM. Sondern daran, dass Java zu viel bekommen hat. Klingt verkehrt, ich weiß. Hier ist der Grund und die konkrete Lösung.
Java braucht Speicher außerhalb des Heaps
Wenn dein Server 10 GB hat, denkst du, die 10 GB gehören dem Spiel. Tun sie nicht. Java teilt sie in zwei Teile.
Der erste ist der Heap — dort liegen Chunks, Entities, Inventare, alles was das Spiel im Speicher hält. Das ist, was du mit -Xmx setzt.
Der zweite Teil hat keinen Namen, den irgendwer nennt, aber ohne ihn läuft nichts: die Tabellen des Garbage Collectors, der Code deiner Plugins (Metaspace), der JIT Code Cache, Thread-Stacks, native Bibliotheken. Nichts davon liegt im Heap, und alles davon verbraucht Container-Speicher.
Und genau hier liegt der Haken: dieser zweite Teil wächst mit dem Heap mit. Der G1 Garbage Collector braucht für seine eigenen Bitmaps und Tabellen etwa 4–5% der Heap-Größe. Bei 10 GB Heap sind das 400–700 MB, bevor ein einziges Plugin geladen ist.
Eine Rechnung, die nicht aufgehen kann
Ein echtes Beispiel — ein 10-GB-Server mit vielen Plugins, bei mir, letzte Woche. Er war so eingestellt, dass der Heap 95% des Containers nehmen durfte. Klingt großzügig.
- Heap: ~10.214 MB
- Rest für Java: ~538 MB
- Allein die G1-Tabellen für diesen Heap: 400–700 MB
Also: Der Garbage Collector frisst den kompletten Rest, und Metaspace, Code Cache und native Bibliotheken bekommen — nichts. Der Kernel killt den Container. Das ist kein Risiko, das ist Arithmetik.
Ich habe gemessen, wie viel dieser zweite Teil auf zwei meiner Server tatsächlich braucht, einer mit 10 GB, einer mit 2 GB:
- 10-GB-Server: 1.630 MB außerhalb des Heaps — 15,9% des Tarifs
- 2-GB-Server: 327 MB außerhalb des Heaps — 16,0% des Tarifs
Zwei Server, die sich in der Größe um das Fünffache unterscheiden, und die Zahl stimmt auf ein Zehntel Prozent überein. Die alte Einstellung ließ 5% übrig.
Wie es aussieht, wenn es kippt
Du bekommst selten eine Meldung "kein Speicher mehr". Stattdessen bekommst du eine Kette, die aussieht wie drei getrennte Fehler:
- Der Server stürzt unter Last ab, meist wenn mehr Spieler zusammenkommen oder neues Terrain generiert wird.
- Der Neustart gibt ihm den Rest. Herunterfahren heißt, die ganze Welt zu speichern — der speicherintensivste Moment überhaupt, ausgerechnet bei schon vollem Speicher. Das Speichern hängt, der Timeout läuft ab, der Prozess wird hart abgeschossen.
- Danach startet er gar nicht mehr. Der Crash hat die Festplatte mit Logs vollgeschrieben, und ohne freien Speicherplatz startet kein Server.
Alle drei haben eine Ursache. Wer die Logs aufräumt, repariert das Symptom.
Wie viel Heap wirklich
Die Regel ist einfach: lass Java etwa ein Fünftel des Tarifs. Ich nehme 80% für den Heap bei allem über 2 GB, und etwas weniger bei kleinen Tarifen, wo die absolute Zahl wichtiger ist als der Prozentsatz.
- 2 GB Tarif → 1.536 MB Heap
- 4 GB Tarif → 3.276 MB Heap
- 10 GB Tarif → 8.192 MB Heap
- 24 GB Tarif → 19.660 MB Heap
Das ist nicht meine Erfindung. Papers eigene Dokumentation sagt dasselbe mit anderen Worten: wenn dein Host 8 GB nennt, setz nicht 8 GB — zieh 1.000–1.500 MB ab. Für 8 GB empfehlen sie 6.500 MB. Meine Formel ergibt bei 8 GB 6.553 MB. 53 MB Unterschied, und wir sind aus zwei völlig verschiedenen Richtungen dorthin gekommen.
Das ist der Heap-Anteil eines Tarifs, den du schon hast. Welchen Tarif du überhaupt brauchst — nach Spielerzahl und Servertyp — habe ich in einem eigenen Ratgeber beschrieben.
Noch eine Grenze, die man kennen sollte: oberhalb von etwa 32 GB Heap verliert Java die compressed oops, und jede Referenz kostet dann acht statt vier Bytes. In einen 34-GB-Heap passt weniger als in einen 31-GB-Heap. Ab da zahlst du mehr für weniger.
Aikar’s flags — was sie sind und warum sie wirken
Aikar’s flags sind eine auf Minecraft zugeschnittene Abstimmung des G1 Garbage Collectors, und du solltest sie wörtlich aus Papers Start-Script-Generator übernehmen statt aus einem Forum abzuschreiben. Das sind die Teile, die wirklich etwas ändern:
- -Xms gleich -Xmx — ein Heap fester Größe. Der Server wird ohnehin alles nutzen, also muss der Speicher nicht in Stufen mitwachsen.
- -XX:+AlwaysPreTouch — Java belegt den ganzen Heap sofort beim Start. Klingt verschwenderisch, ist aber das Nützlichste auf der Liste: passt der Heap nicht, erfährst du es in der ersten Sekunde und nicht mitten beim Speichern der Welt.
- -XX:+ParallelRefProcEnabled — Referenzverarbeitung über mehrere Threads. Auf Servern mit vielen Plugins ist das eine klassische Ursache für sekundenlange Hänger.
- -XX:+DisableExplicitGC — ignoriert Plugins, die selbst System.gc() aufrufen und damit den ganzen Server anhalten.
Ein Hinweis, den man selten liest: Container hängen /tmp als kleine RAM-Disk ein. Plugins, die native Bibliotheken entpacken, schreiben genau dorthin, und dieser Platz zählt zum Container-Speicher. Deshalb leite ich temporäre Dateien auf meinen Servern daran vorbei.
Was du NICHT tun solltest
Drei Ratschläge, die im Netz stehen und die Sache verschlimmern:
- "Gib Java den ganzen RAM." Der häufigste und teuerste Rat. Genau diese Konfiguration killt den Server unter Last — alles oben Beschriebene passiert genau deswegen.
- "Mehr RAM hilft immer." Tut es nicht. Paper schreibt wörtlich, dass es ab einem Punkt kaum noch etwas bringt und 32 GB für einen normalen Server rausgeworfenes Geld sind. Ein schlecht abgestimmter 8-GB-Server läuft besser als ein schlecht abgestimmter 16-GB-Server.
- -XX:+HeapDumpOnOutOfMemoryError. Wirkt nützlich — schreibt den Zustand beim Absturz mit. In der Praxis legt es eine Datei in Heap-Größe auf die Platte, füllt die Quota und verhindert den nächsten Start. Ich setze es nie.
Wo du das alles laufen lässt
Wenn du einen eigenen Server hast: nimm die Flags aus Papers Generator und zieh beim -Xmx ein Fünftel ab. Das sind 90% der Arbeit.
Bei mir auf mcbalkan ist das schon erledigt — der Heap wird aus deinem Tarif berechnet, wächst bei einem Upgrade mit, und die Flags sind exakt die, die Paper veröffentlicht. Die Maschinen stehen in Deutschland, also niedriger Ping für DACH. Und wenn's doch hakt, schreibst du direkt mir — kein Ticketsystem, kein Bot. Zum Minecraft-Hosting.