Czemu crashuje serwer Minecraft: pelny poradnik diagnostyki i naprawy
Twoj serwer Minecraft padl o trzeciej w nocy, na czacie panika, a ty nie wiesz, co sie stalo. Znajoma sytuacja? My w MineGuard pracujemy z setkami serwerow i widzimy te same problemy w kolko. W tym poradniku omawiamy wszystkie glowne przyczyny crashow i pokazujemy, jak je znajdowac i usuwac.
Jak czytac crash raporty
Pierwsza rzecz po crashu to znalezc i przeczytac crash raport. Serwer zapisuje je do folderu crash-reports/ w katalogu serwera. Pliki nazywaja sie wedlug daty i czasu, np.:
crash-reports/crash-2026-04-06_14.23.45-server.txt
Otworz ostatni plik. Struktura crash raportu wyglada tak:
---- Minecraft Crash Report ----
Time: 4/6/26 14:23
Description: Exception in server tick loop
java.lang.OutOfMemoryError: Java heap space
at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:382)
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:873)
Najwazniejsze tu: linijka Description i pierwsza linijka bledu (w przykladzie wyzej to OutOfMemoryError). Stack trace ponizej pokazuje, gdzie dokladnie wystapil blad. Jesli w stacku przewija sie nazwa plugina, prawdopodobnie problem w nim.
Jesli serwer nie stworzyl crash raportu, szukaj info w logs/latest.log. Serwer moze nie zdazyl stworzyc pliku, jesli zamknal sie awaryjnie (np. OOM Killer na Linuksie zabil proces).
Brak pamieci (OutOfMemoryError)
To najczestsza przyczyna crashow. Serwer zjadl caly przydzielony RAM i nie moze dzialac dalej.
Objawy
- W crash raporcie:
java.lang.OutOfMemoryError: Java heap space - TPS spada stopniowo przed crashem
- W logach moga byc wiadomosci o GC (garbage collector)
Rozwiazanie: Aikar's Flags
Nie tylko zwiekszaj -Xmx. Uzyj zoptymalizowanych flag Aikara, ktore konfiguruja garbage collector G1GC specjalnie pod Minecrafta:
java -Xms8G -Xmx8G \
-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 \
-jar server.jar --nogui
Wazny moment: -Xms i -Xmx powinny byc takie same. To zapobiega ciaglej zmianie rozmiaru heapa.
Ile pamieci przydzielac
- 1-20 graczy: 4-6 GB
- 20-50 graczy: 6-10 GB
- 50-100 graczy: 10-16 GB
- 100+ graczy: 16+ GB
Te liczby sa przyblizone. Ciezkie pluginy (Dynmap, Citizens) i duze swiaty wymagaja wiecej pamieci.
Uszkodzone chunki
Uszkodzony chunk wywoluje crash przy ladowaniu. Zwykle dzieje sie to, gdy gracz wchodzi w okreslony obszar, a serwer natychmiast pada.
Objawy
- Crash przy wejsciu konkretnego gracza
- W logach:
ChunkLoadingExceptionalboRegionFileCorruption - Bledy przy czytaniu danych NBT
Rozwiazanie
Ustal koordynaty problematycznego chunka z logow albo crash raportu. Potem:
-
MCA Selector (polecamy): otworz swiat, znajdz uszkodzony chunk i usun go. Serwer wygeneruje go ponownie.
-
Region Fixer do automatycznego skanowania:
python region-fixer.py /path/to/world
- Metoda reczna: wylicz plik regionu po koordynatach chunka. Chunk X=400, Z=800 jest w regionie r.12.25.mca (dzielimy koordynaty bloku przez 512). Usun ten plik z
world/region/.
Profilaktyka
- Rob regularne backupy
- Nie wylaczaj serwera komenda kill, uzywaj
stop - Uzywaj UPS albo ochrony przed nagle zanikiem zasilania
Konflikty pluginow
Dwa pluginy moga probowac zmieniac to samo, wywolujac crash. Szczegolnie czesto dzieje sie to z pluginami modyfikujacymi pakiety, obslugujacymi zdarzenia albo zmieniajacymi zachowanie mobow.
Objawy
- Crash po zainstalowaniu nowego plugina
- W stack trace widac nazwy pluginow
- Bledy typu
AbstractMethodErroralboNoSuchMethodError
Metoda podzialu binarnego
Jesli nie wiadomo, ktory plugin winny:
- Usun polowe pluginow z folderu
plugins/ - Uruchom serwer
- Jesli crash sie powtarza, problem w pozostalej polowie. Jesli nie - w usunietej.
- Powtarzaj, dzielac problematyczna polowe na pol.
W 3-4 iteracjach znajdziesz winnego nawet wsrod 30+ pluginow.
Czesto konfliktujace pary
- ProtocolLib + przestarzale pluginy z niego korzystajace
- Dwa anticheaty naraz
- Pluginy czatu uzywajace roznych API
- WorldEdit + pluginy ochrony regionow przy masowych operacjach
Przeciazenie encjami
Tysiace mobow, wyrzuconych przedmiotow albo wagonikow moga przeciazyc serwer do crashu.
Objawy
- TPS spada stopniowo
- W profilu Spark:
entityTickzajmuje wiekszosc ticka - Watchdog timeout w logach
Rozwiazanie
Szybkie: zabic encje komenda:
/kill @e[type=!player]
Dlugoterminowe: skonfigurowac limity w bukkit.yml:
spawn-limits:
monsters: 50
animals: 10
water-animals: 5
water-ambient: 10
ambient: 5
tick-inactive-spawners: false
Zainstaluj ClearLag albo FarmControl do automatycznej kontroli liczby encji.
Watchdog timeout
Serwer Minecraft oczekuje, ze kazdy tick skonczy sie w 50ms (20 TPS). Jesli jeden tick zajmuje wiecej niz 60 sekund, Watchdog przymusowo konczy serwer.
Objawy
- W logach:
A single server tick took 60.00 seconds Considering it to be crashed, server will forcibly shutdown
Czeste przyczyny
- Plugin wykonuje synchroniczna operacje z baza danych
- Operacja WorldEdit na ogromnym regionie
- Generacja chunkow w ciezkim swiecie (duzy render distance)
- Jeden plugin zablokowal glowny watek
Rozwiazanie
Uzyj Spark do profilowania:
/spark profiler start
Poczekaj kilka minut, potem:
/spark profiler stop
Spark pokaze, ktora metoda ktorego plugina zajmuje najwiecej czasu w ticku serwera. Zwykle winny jest oczywisty.
Stack Overflow od rekurencyjnych pluginow
StackOverflowError dzieje sie, gdy plugin wywoluje sam siebie w nieskonczonosc. Klasyczny przyklad: plugin na zdarzenie smierci gracza teleportuje go, co wywoluje inne zdarzenie, ktore znow wywoluje ten sam handler.
W crash raporcie wyglada to tak:
java.lang.StackOverflowError
at com.example.plugin.DeathHandler.onDeath(DeathHandler.java:45)
at com.example.plugin.DeathHandler.onDeath(DeathHandler.java:45)
at com.example.plugin.DeathHandler.onDeath(DeathHandler.java:45)
... (tysiace identycznych linii)
Rozwiazanie
Ustal plugin po stack trace i skontaktuj sie z developerem. Zwykle to bug, ktory naprawia sie aktualizacja plugina. Jako tymczasowe rozwiazanie - wylacz problematyczny plugin.
Crashe od pakietowych exploitow i DDoS
Jest osobna kategoria crashow, ktorej nie da sie naprawic ustawieniami serwera. To celowane ataki.
Pakietowe exploity
Napastnicy wysylaja specjalnie uformowane pakiety wywolujace bledy w kodzie serwera. Przyklady:
- Book exploit: ksiazka z ogromnym tagiem NBT wywolujaca OOM
- Position exploit: koordynaty NaN albo Infinity, crashujace system chunkow
- Packet spam: tysiace pakietow interakcji przeciazajacych serwer
Ataki DDoS
Ogromny strumien ruchu zapycha lacze sieciowe albo przeciaza serwer falszywymi polaczeniami. Serwer marnuje wszystkie zasoby na obsluge smieciowego ruchu i przestaje odpowiadac.
Nasze rozwiazanie
W MineGuard zaprojektowalismy specjalny filtr sieciowy do ochrony przed tymi atakami. Nasz filtr dziala na poziomie sieci, zanim ruch dotrze do twojego serwera. Filtrujemy pakietowe exploity, blokujemy boty i pochlaniamy ruch DDoS. To sa problemy, ktorych pluginy nie moga rozwiazac, bo w momencie, gdy plugin dostaje pakiet, szkoda juz jest wyrzadzona. Nasz filtr przechwytuje szkodliwe pakiety zanim trafia na serwer.
Jak poprawnie prosic o pomoc
Jesli nie mozesz rozwiazac problemu sam, oto co przygotowac:
- Crash raport w calosci (plik z
crash-reports/) - Ostatni log (
logs/latest.log) - Raport Spark: wykonaj
/spark profileri podaj link - Raport Timings: wykonaj
/timings on, poczekaj 5 minut, potem/timings report - Lista pluginow z wersjami (
/plugins) - Wersja serwera: Paper/Spigot/Purpur, wersja Minecrafta, wersja Javy
Z tymi informacjami pomoga ci na forum SpigotMC, w Discordzie serwera PaperMC albo w naszym Discordzie MineGuard. Nie pisz po prostu "serwer crashuje, pomocy". Im wiecej danych dostarczysz, tym szybciej dostaniesz rozwiazanie.
Podsumowanie
Wiekszosc crashow serwera Minecraft wpada w jedna z kategorii: brak pamieci, uszkodzone chunki, konflikty pluginow, przeciazenie encjami albo watchdog timeout. Wszystkie diagnozowane sa przez crash raporty i logi i wszystkie maja konkretne rozwiazania.
Wyjatkiem sa celowane ataki: pakietowe exploity i DDoS. Do ochrony przed nimi potrzebna jest filtracja sieciowa i wlasnie do tego stworzylismy MineGuard.
Rob backupy, czytaj logi, aktualizuj pluginy, a twoj serwer bedzie dzialal stabilnie.
Chroń swój serwer przed atakami DDoS
Darmowa ochrona z konfiguracją w 5 minut. 1 TB ruchu w zestawie.
Wypróbuj za darmoPowiązane artykuły
ShopGUIPlus vs QuickShop vs ChestShop: który plugin sklepu wybrać 2026
Bezpośrednie porównanie trzech popularnych pluginów sklepowych: ShopGUIPlus admin GUI, QuickShop-Hikari sklepy graczy w skrzyniach oraz klasyczny ChestShop na tabliczkach. UX, cena, wydajność, integracje i kiedy co wybrać.
Slimefun: kompletny przewodnik po pluginie dla serwera Minecraft 2026
Slimefun4 na Paper 1.21: instalacja, GuideBook, badania, sieć cargo, energia, dodatki ExoticGarden i InfinityExpansion oraz jak nie zabić TPS.
Ekonomia SMP bez pay-to-win: monetyzacja zgodna z EULA
Jak monetyzować serwer SMP bez P2W: co dozwala EULA, czego zakazuje, rangi, Tebex, nagrody za vote i realne przychody.