java.lang.OutOfMemoryError: Java heap space oznacza, że serwer poprosił o więcej pamięci, niż ma do dyspozycji, i został zatrzymany. Przyczyny są dwie: za mały pakiet do tego, co serwer robi, albo wyciek pamięci w dodatku. Rozróżnisz je po kształcie wykresu Pamięć w zakładce Konsola.
#Czego potrzebujesz
- Dostęp do zakładek Konsola i Dzienniki w panelu manage.mchost.gg.
#Krok 1: Odczytaj wykres pamięci
Pod konsolą znajdziesz wykres Zużycie zasobów z sekcją Pamięć.
| Kształt wykresu | Diagnoza |
|---|---|
| Piła: rośnie, spada po odśmiecaniu, znowu rośnie | Normalna praca |
| Stały poziom przy limicie, płaska linia | Za mały pakiet do obciążenia |
| Liniowy wzrost aż do padu, bez spadków | Wyciek pamięci w dodatku |
| Skok w górę w konkretnym momencie | Zdarzenie: pregeneracja, wczytanie dużej struktury, farma mobów |
Wyciek pamięci poznasz po tym, że serwer działa poprawnie po restarcie i pada dopiero po kilku godzinach — zawsze po podobnym czasie. Za mały pakiet objawia się natychmiast pod obciążeniem.
#Krok 2: Zmniejsz zużycie pamięci
Kolejność od największego zysku:
- Usuń nieużywane dodatki. Każdy plugin i mod zajmuje pamięć nawet wtedy, gdy nikt z niego nie korzysta.
- Obniż zasięgi. W zakładce Konfiguracja → Sieć i wydajność ustaw Zasięg widoku na 6–8 i Zasięg symulacji na 4–6. To najprostsza zmiana o dużym wpływie.
- Ogranicz limit graczy. Panel ostrzega: „Wysoka liczba graczy może wpłynąć na wydajność".
- Ogranicz świat. Maksymalny rozmiar świata zmniejsza liczbę chunków, jakie serwer może wygenerować i trzymać.
- Wyłącz ciężkie dodatki. Dynmap, BlueMap i pluginy z dużym cache potrafią zjeść setki megabajtów.
#Krok 3: Znajdź źródło wycieku
Zainstaluj plugin Spark i uruchom analizę pamięci:
spark heapsummaryRaport pokazuje, które klasy zajmują najwięcej pamięci — nazwa pakietu wskazuje dodatek. Profilowanie obciążenia:
spark profiler --timeout 300Doraźnym obejściem jest automatyczny restart raz na dobę, ale to leczenie objawu — winowajcę trzeba znaleźć.
#Krok 4: Sprawdź, czy pakiet wystarcza
Orientacyjne zapotrzebowanie:
| Rodzaj serwera | Sensowne minimum RAM |
|---|---|
| Vanilla / Paper, do 10 graczy | 2 GB |
| Paper z kilkoma pluginami, 10–30 graczy | 4 GB |
| Rozbudowany serwer z ekonomią i mapą online | 6–8 GB |
| Lekki modpack (do 100 modów) | 6 GB |
| Duży modpack (200+ modów) | 8–12 GB |
Zapotrzebowanie rośnie z liczbą modów, nie z liczbą graczy. Modpack z 300 modami zje więcej pamięci przy jednym graczu niż czysty Paper przy trzydziestu.
Jeśli po ograniczeniu zasięgów i usunięciu zbędnych dodatków wykres Pamięć nadal stale dobija do limitu — potrzebujesz większego pakietu.
#Najczęstsze problemy
#Serwer pada codziennie o podobnej porze
Wyciek pamięci. Uruchom spark heapsummary tuż przed spodziewanym padem — wtedy widać, co urosło.
#OutOfMemoryError przy pregeneracji świata
Pregeneracja to najbardziej pamięciożerna operacja. Uruchamiaj ją przy pustym serwerze i mniejszymi partiami.
#Pamięć jest pełna, ale nikogo nie ma na serwerze
Wczytane chunki nie zwalniają się natychmiast. Jeśli poziom nie spada po kilkunastu minutach pustki, to wyciek.
#Serwer nie pada, ale strasznie muli
To osobny problem — patrz Lagi i optymalizacja.
#Log nie zawiera OutOfMemoryError, a serwer się wyłącza
Sprawdź latest.log w całości przyciskiem Pobierz. Przy nagłym zabiciu procesu wpis może być ostatnią, uciętą linią.