Server crasht door vol geheugen (OOM)

Je gameserver draait prima, tot hij ineens zonder waarschuwing verdwijnt. Geen foutmelding in de chat, geen nette shutdown. Je opent het paneel en ziet dat de server is gestopt. In de logs vind je "Out of memory" of helemaal niets. Dit is een OOM-kill: het besturingssysteem heeft je serverproces geforceerd beeindigd omdat het geheugen op was.

Wat is een OOM-kill?

OOM staat voor Out of Memory. Wanneer een server al het beschikbare RAM heeft verbruikt en er niets meer over is, grijpt het besturingssysteem in. De Linux OOM-killer selecteert het proces dat het meeste geheugen gebruikt en beeindigt het onmiddellijk. Je gameserver is bijna altijd dat proces. Het resultaat: een harde crash zonder nette save, met mogelijk beschadigde werelddata.

Symptomen herkennen

  • De server bevriest kort en verdwijnt dan volledig (geen "server closed" melding).
  • In de systeemlogs (niet de gamelogs) staat "Out of memory: Killed process" of "oom-kill".
  • Bij Java-games (Minecraft, modpacks): java.lang.OutOfMemoryError: Java heap space in de console vlak voor de crash.
  • De server herstart zichzelf (als auto-restart aan staat) en draait een tijdje normaal, tot het patroon zich herhaalt.

Veelvoorkomende oorzaken

  1. Te veel spelers of entities: elke speler laadt chunks, en elke chunk bevat entities (mobs, items, dropped items). Honderd koeien in een boerderij of duizenden op de grond liggende items vreten geheugen.
  2. Geheugenlekken in plugins of mods: sommige plugins reserveren geheugen dat ze nooit meer vrijgeven. Na uren draaien groeit het geheugengebruik steeds verder, tot het de limiet bereikt.
  3. Te weinig RAM toegewezen: een Minecraft-server met 20 mods op 2 GB RAM gaat gegarandeerd crashen. Modpacks hebben 4 tot 8 GB nodig, afhankelijk van het pack.
  4. Wereld te groot geladen: een hoge view distance (16 of meer) laadt enorm veel chunks tegelijk. Elke chunk kost geheugen, en met meerdere spelers op afstand van elkaar verveelvoudigt dit.
  5. Geen herstartschema: zelfs zonder lekken groeit het geheugengebruik na 24 uur of meer continu draaien. Regelmatig herstarten voorkomt dat het tot het maximum oploopt.

Stapsgewijze oplossingen

1. Controleer logs op OOM

Bekijk de serverlogs in je paneel. Zoek naar "OutOfMemoryError", "heap space", of "oom". Als je SSH-toegang hebt, check ook dmesg | grep -i oom voor systeemlevel OOM-kills. Dit bevestigt dat geheugen het probleem is en geen andere crash.

2. Verhoog het toegewezen geheugen

Als je server structureel tegen de limiet aanloopt, heb je meer RAM nodig. Bij Minecraft stel je het in met de -Xmx flag (bijvoorbeeld -Xmx4G voor 4 GB). Let op: wijs niet meer toe dan je plan biedt, want dan doodt de OOM-killer het proces alsnog. Upgrade eventueel je hostingplan voor meer geheugen.

3. Vind en verwijder lekkende plugins

Installeer een profiler-plugin zoals Spark (voor Minecraft). Laat de server een paar uur draaien en bekijk het heap-rapport. Plugins die steeds meer geheugen claimen zonder het vrij te geven zijn de boosdoeners. Verwijder of vervang ze en monitor of het geheugengebruik stabiel blijft.

4. Stel een herstartschema in

Plan automatische herstarts elke 6 tot 12 uur. Dit geeft de server een schone lei qua geheugen. Gebruik de scheduler in je paneel (Pterodactyl: Schedules, actie "Power: Restart") of een in-game plugin die spelers waarschuwt voor de herstart.

5. Gebruik Aikar flags voor Minecraft

De Aikar JVM flags optimaliseren hoe Java geheugen beheert. Ze stellen de garbage collector zo in dat hij regelmatig kleine opruimrondes doet in plaats van een grote, zodat de server minder last heeft van lag-spikes door geheugenopruiming. Voeg de flags toe aan je startup-commandoregel; ze staan uitgelegd op de Paper-documentatie.

6. Beperk de wereld

Stel een wereldgrens in (/worldborder set 10000 voor een straal van 5000 blokken). Verlaag de view distance naar 8 of 10. Gebruik plugins die entities automatisch opruimen (zoals ClearLagg) om dropped items en overbodige mobs te verwijderen.

Heb je structureel te weinig geheugen? Bekijk de HostValues plannen met voldoende RAM voor jouw setup. Upgraden kan direct vanuit het paneel, zonder dataverlies.

Helpt swap-geheugen tegen OOM-crashes?

Swap (schijfgeheugen als nood-RAM) kan een OOM-kill tijdelijk voorkomen, maar het is geen oplossing. Swap is tientallen keren trager dan echt RAM. Een gameserver die op swap draait, heeft zoveel lag dat spelers het niet kunnen spelen. Swap koopt je hooguit tijd om de situatie te onderzoeken, maar je server heeft echt meer RAM nodig.

Hoe vind ik welke plugin geheugen lekt?

Installeer Spark (voor Paper/Purpur) en genereer een heap dump na een paar uur draaien. Het rapport laat zien welke objecten het meeste geheugen innemen. Als een plugin-gerelateerd object bovenaan staat en groeit bij elke meting, is dat je lek. Je kunt ook plugins een voor een uitschakelen en monitoren of het geheugengebruik stabiliseert.

Hoe herken ik OOM versus andere crashes?

Bij een OOM-crash verdwijnt de server abrupt zonder nette shutdown-melding. In de gamelogs staat vaak "OutOfMemoryError" vlak voor het einde. Bij een normale crash (door een bug of corruptie) zie je meestal een stacktrace of foutmelding. Bij een netwerk- of hardwareprobleem blijft de server draaien maar is hij onbereikbaar. Check altijd zowel de gamelogs als het systeemlevel (paneel-events, dmesg) om het type crash te bepalen.


Komt u er niet uit? Open een support ticket, ons team helpt u graag verder.

Terug naar de blog