Přejít k obsahu

Chyba: OutOfMemoryError – nedostatek paměti RAM

Minecraft server vyčerpal přidělenou paměť RAM – jak odhalit únik paměti, snížit nároky a zvolit správný balíček.

Hláška java.lang.OutOfMemoryError: Java heap space znamená, že server požádal o víc paměti, než má k dispozici, a byl zastaven. Příčiny jsou dvě: příliš malý balíček na to, co server dělá, nebo únik paměti (memory leak) v doplňku. Rozlišíte je podle tvaru grafu Paměť v záložce Konzole.

#Co budete potřebovat

#Krok 1: Přečtěte graf paměti

Pod konzolí najdete graf Využití zdrojů se sekcí Paměť.

Tvar grafu Diagnóza
Pila: roste, po úklidu (GC) klesne, zase roste Normální provoz
Stálá úroveň u limitu, plochá čára Příliš malý balíček na zátěž
Lineární růst až do pádu, bez poklesů Únik paměti v doplňku
Skok nahoru v konkrétní chvíli Událost: pregenerace, načtení velké stavby, mob farma

Únik paměti poznáte podle toho, že server po restartu běží v pořádku a spadne až po několika hodinách – vždy přibližně po stejné době. Příliš malý balíček se projeví hned pod zátěží.

#Krok 2: Snižte spotřebu paměti

Pořadí od největšího přínosu:

  1. Odstraňte nepoužívané doplňky. Každý plugin a mod zabírá paměť, i když ho nikdo nepoužívá.
  2. Snižte dohlednost. V záložce Konfigurace → Síť a výkon nastavte Dohlednost na 6–8 a Simulační vzdálenost na 4–6. Je to nejjednodušší změna s velkým dopadem.
  3. Omezte limit hráčů. Panel varuje: „Vysoký počet hráčů může ovlivnit výkon“.
  4. Omezte svět. Maximální velikost světa snižuje počet chunků, které server může vygenerovat a držet v paměti.
  5. Vypněte náročné doplňky. Dynmap, BlueMap a pluginy s velkou cache dokážou spotřebovat stovky megabajtů.

#Krok 3: Najděte zdroj úniku

Nainstalujte plugin Spark a spusťte analýzu paměti:

spark heapsummary

Report ukáže, které třídy zabírají nejvíc paměti – název balíčku prozradí doplněk. Profilování zátěže:

spark profiler --timeout 300

Provizorním řešením je automatický restart jednou denně, ale to je jen léčba příznaku – viníka je potřeba najít.

#Krok 4: Ověřte, zda balíček stačí

Orientační nároky:

Typ serveru Rozumné minimum RAM
Vanilla / Paper, do 10 hráčů 2 GB
Paper s několika pluginy, 10–30 hráčů 4 GB
Rozsáhlý server s ekonomikou a online mapou 6–8 GB
Lehký modpack (do 100 modů) 6 GB
Velký modpack (200+ modů) 8–12 GB

Nároky rostou s počtem modů, ne s počtem hráčů. Modpack s 300 mody spotřebuje při jednom hráči víc paměti než čistý Paper při třiceti.

Pokud graf Paměť i po snížení dohlednosti a odstranění zbytečných doplňků stále naráží na limit – potřebujete větší balíček.

#Nejčastější problémy

#Server padá každý den přibližně ve stejnou dobu

Únik paměti. Spusťte spark heapsummary těsně před očekávaným pádem – uvidíte, co narostlo.

#OutOfMemoryError při pregeneraci světa

Pregenerace je nejnáročnější operace na paměť. Spouštějte ji na prázdném serveru a po menších částech.

#Paměť je plná, ale na serveru nikdo není

Načtené chunky se neuvolňují okamžitě. Pokud úroveň neklesne ani po deseti či více minutách prázdného serveru, jde o únik.

#Server nepadá, ale hrozně se seká

To je samostatný problém – viz Lagy a optimalizace.

#Log neobsahuje OutOfMemoryError, a server se přesto vypíná

Prohlédněte si celý latest.log – stáhněte ho tlačítkem Stáhnout. Při náhlém zabití procesu může být záznam poslední, useknutý řádek.

#Co dál

Nezbytné technologie běží vždy. Funkční, analytické a marketingové zapneme jen s vaším souhlasem.

Zásady ochrany osobních údajů a cookies