Przejdź do treści
CraftRadar
Redakcja serwisu

Jak naprawić błąd „Can't keep up!" na serwerze Minecraft

Ostrzeżenie „Can't keep up! Is the server overloaded?" pojawia się wtedy, gdy serwer nie nadąża z tickami. Pokazujemy, jak zdiagnozować przyczynę i ją usunąć.

Komunikat Can't keep up! Is the server overloaded? Running 5000ms or 100 ticks behind w logu serwera Minecraft to klasyk. Pojawia się, gdy serwer nie nadąża z wykonaniem 20 ticków na sekundę i „stara się dogonić" zaległości. Symptomy: lagi, opóźnienia, gracze narzekają na rubber-banding.

Jak naprawić błąd „Can't keep up!" na serwerze Minecraft – Happy Ghast na serwerze Minecraft

Pokazujemy, jak zdiagnozować przyczynę i ją usunąć — krok po kroku.

Co dokładnie oznacza ten błąd?

Minecraft działa na 20 TPS — każdy tick trwa idealnie 50 ms. Gdy operacje w jednym ticku zajmują dłużej, kolejne ticki zaczynają się opóźniać. Po przekroczeniu progu (zwykle 5 sekund opóźnienia) Minecraft loguje ostrzeżenie i próbuje „pominąć" ticki, by nadrobić.

Skutek: część logiki świata (moby, redstone, despawning) nie wykonuje się przez chwilę. Gracze widzą zamrożone obiekty, opóźnione bloki, zacinanie się.

Krok 1 — Diagnoza sparkiem

Bez profilowania zgadujesz. spark pokaże dokładnie, co zżera czas:

/spark profiler --timeout 60
/spark health

Po 60 sekundach dostaniesz link do raportu. Najważniejsze sekcje:

  • Top entries by total time — co zajmuje najwięcej CPU.
  • Plugins — który plugin spożywa CPU.
  • GC time — ile spędzamy w garbage collectorze.

Krok 2 — Entity

/spark health pokaże liczbę entity. Jeśli przekracza 5000:

  • najprawdopodobniej masz farmy zwierząt na 200+ sztuk,
  • albo nieusunięte itemy po śmierciach (long-distance arena),
  • albo źle skonfigurowane spawnery.

Polecane:

# spigot.yml
spawn-limits:
  monsters: 50
  animals: 8

# paper.yml (ostrożnie, zmienia mechanikę)
entities:
  spawning:
    per-player-mob-spawns: true
    despawn-ranges:
      monster:
        soft: 28
        hard: 96

Plus FarmLimiter — automatyczne usuwanie nadmiaru zwierząt.

Krok 3 — Hoppery

Hoppery są drugim najczęstszym sprawcą. /spark profiler pokaże HopperBlockEntity#tick jako jeden z największych zużywających CPU.

Naprawa:

# paper.yml
ticks-per:
  hopper-transfer: 8
  hopper-check: 8

Plus plugin HopperLagFix, który automatycznie wyłącza nieużywane hoppery (te, które nie miały transferu od X minut).

Krok 4 — Złe pluginy

Niektóre pluginy są napisane fatalnie. Synchroniczne SQL, pełne skanowanie świata co tick, brak cache'owania. Spark pokaże nazwę pluginu w sekcji „Plugins by total time".

Najczęstsi winowajcy:

  • stare wersje Towny / Factions (2018-2019),
  • pluginy „shop GUI" napisane w pośpiechu,
  • pluginy z synchroniczną integracją Discord / web,
  • customowe pluginy z synchronicznym I/O.

Rozwiązanie: aktualizacja, podmiana na alternatywę, kontakt z autorem.

Jak naprawić błąd „Can't keep up!" na serwerze Minecraft – snapshot Minecrafta na serwerze Minecraft

Krok 5 — RAM i GC

Jeśli /spark health pokazuje GC time powyżej 5%, problem jest w pamięci. Skutki: serwer co 2–3 minuty zamarza na sekundę.

Pierwsze działanie — dodaj 2–4 GB do -Xms i -Xmx. Drugie — włącz Aikar Flags (jeśli jeszcze nie):

java -Xms6G -Xmx6G \
  -XX:+UseG1GC \
  -XX:MaxGCPauseMillis=200 \
  -XX:+ParallelRefProcEnabled \
  -XX:+DisableExplicitGC \
  -jar paper.jar --nogui

Trzecie (jeśli nadal źle) — przejście z G1GC na ZGC.

Krok 6 — Wolny dysk

Tani VPS z dyskiem SATA SSD generuje powolne zapisy chunków. Spark pokaże dużo czasu w ChunkSerializer.

Naprawy:

  • sync-chunk-writes=false w server.properties,
  • NVMe zamiast SATA SSD (zmiana hostingu),
  • tmpfs dla świata (ostrożnie, ryzyko utraty przy padzie).

Krok 7 — Redstone

Skomplikowane układy redstone (zegary 1-tickowe, wielkie maszyny obliczeniowe) potrafią sprowadzić serwer na kolana. /spark profiler pokaże BlockRedstoneTorch i podobne.

Włącz Alternate Current:

# paper.yml
redstone-implementation: ALTERNATE_CURRENT

Plus rozmowa z graczem buddującym monstra — czasem trzeba ograniczyć rozmiar/szybkość.

Krok 8 — ostatecznosc

Jeśli wszystko powyżej zawodzi:

  • Sprawdź htop i iotop — czy CPU/dysk są zarzucone procesami spoza Minecrafta.
  • Czy hosting nie ma „neighbour effect" (sąsiad na VPS zżera zasoby).
  • Czy serwer ma realny CPU, a nie shared (oversold).
  • Może czas na lepszy sprzęt.

Prewencja — by błąd nie wracał

  • Ustaw alert Discord przy spadku TPS < 18 (plugin SimpleAlert).
  • Cotygodniowo przejrzyj /spark profiler w godzinach szczytu.
  • Aktualizuj pluginy raz w miesiącu.
  • Trzymaj liczbę entity poniżej 3000.
  • Pre-generuj nowe regiony świata przed otwarciem dla graczy.

Podsumowanie

„Can't keep up!" to symptom, nie choroba. W 90% przypadków to za dużo entity, źle skonfigurowane hoppery, słaby plugin albo brak Aikar Flags. Profilowanie sparkiem jest absolutnie kluczowe — bez niego strzelasz po omacku.

Rozwiązanie zwykle zajmuje 30–60 minut, jeśli wiesz, czego szukasz. Z tym przewodnikiem wiesz.

Dodaj serwer

Wpisz adres serwera Minecraft, aby dodać go do listy. Dodanie jest darmowe.

Nie masz jeszcze serwera? Zobacz, jak go założyć.