TPS za niskie? Tak poprawisz wydajność serwera Minecraft

Dwadzieścia TPS to cel. Wszystko poniżej jest odczuwalne: bloki, które łamią się z opóźnieniem, moby, które się zacinają, redstone, który nie działa niezawodnie. Poniżej kroki, które mają największy wpływ, w kolejności. Mierz przed i po każdej zmianie za pomocą /spark tps.

Własny serwer Minecraft? W HostValues od €2,80 miesięcznie, online w kilka minut. Zobacz plany →

Krok 1: najpierw zmierz, nie zgaduj

Otwórz konsolę i wpisz /spark profiler start. Graj przez pięć minut normalnie. Wpisz /spark profiler stop. Spark wygeneruje link do przeglądu, który dokładnie pokazuje, na co idzie czas ticku. Bez tego pomiaru zmieniasz ustawienia po omacku.

Trzy najczęstsi winowajcy: generowanie chunków (gracze eksplorujący nowy teren), entity (moby, przedmioty, armor standy) i źle napisane pluginy.

MSPT: ile naprawdę trwa jeden tick

Obok TPS jest druga liczba, która mówi więcej: MSPT, czyli milisekundy na tick. Minecraft liczy 20 ticków na sekundę, więc na każdy tick serwer ma 50 milisekund. MSPT to czas, którego serwer faktycznie potrzebuje na jeden tick. Dopóki wynosi 50 lub mniej, serwer utrzymuje 20 TPS. Po TPS nie odróżnisz więc serwera z 15 MSPT od serwera z 45 MSPT, a po MSPT tak: widać, ile zapasu zostało, zanim TPS zacznie spadać.

  • Wyraźnie poniżej 50 ms: zapas jest duży, TPS zostaje na 20.
  • Tuż poniżej 50 ms: serwer jest na granicy. Nowa farma albo kilku graczy więcej wystarczy, żeby przestał nadążać.
  • Powyżej 50 ms: serwer nie daje rady wykonać 20 ticków na sekundę. TPS spada i cały świat zwalnia: uprawy rosną wolniej, moby się zacinają, redstone działa zawodnie.

Nie patrz tylko na średnią. Serwer może mieć średnio 30 MSPT, a mimo to pojedyncze ticki po kilkaset milisekund, na przykład przy generowaniu lub zapisywaniu nowych chunków. Gracze odczuwają takie skoki jako krótkie przycięcia. Widać je w wartości maksymalnej i w 95. percentylu.

Jak zmierzyć MSPT:

  • Paper: /mspt pokazuje średnią, minimum i maksimum z ostatnich 5, 10 i 60 sekund, a /tps TPS z ostatnich 1, 5 i 15 minut. Dokumentacja Paper zaleca dziś zamiast nich /spark.
  • Spark: /spark tps pokazuje TPS z ostatnich 5 i 10 sekund oraz 1, 5 i 15 minut, a do tego czas ticków (minimum, mediana, 95. percentyl i maksimum) z ostatnich 10 sekund i ostatniej minuty. Na Paper od wersji 1.21 Spark jest wbudowany.
  • Vanilla, Fabric lub NeoForge bez Spark: /tick query (od Minecraft 1.20.3, poziom operatora 3) pokazuje średni czas ticku z celem 50 ms oraz percentyle P50, P95 i P99.
  • Konsola: komunikat Can't keep up! Is the server overloaded? oznacza, że serwer nie nadąża za swoim rytmem.

Przy wysokim MSPT szukaj przyczyny profilerem Spark zamiast zgadywać. Na krótkie skoki najlepiej działa /spark profiler start --only-ticks-over 50: Spark nagrywa wtedy tylko ticki dłuższe niż 50 ms. Częste przyczyny to dużo mobów, leje, duże układy redstone i zbyt wysoka reguła gry random_tick_speed (wcześniej randomTickSpeed), a także generowanie chunków i pojedyncze pluginy.

Krok 2: wstępne generowanie chunków

Generowanie chunków to najcięższa operacja, jaką wykonuje serwer Minecraft. Za każdym razem, gdy gracz wchodzi na nowy teren, serwer musi go obliczyć. Za pomocą pluginu Chunky generujesz mapę z wyprzedzeniem:

/chunky radius 5000
/chunky start

To generuje okrąg o promieniu 5000 bloków wokół spawnu. Rób to w spokojnym momencie; zajmuje to czas, ale zapobiega lagom podczas gry. Następnie ustaw granicę świata, aby gracze nie wychodzili poza wygenerowany obszar.

Krok 3: zmniejsz view i simulation distance

Otwórz server.properties:

  • view-distance=7 (domyślnie 10; dla survival 6 do 8 jest odpowiednie)
  • simulation-distance=4 (domyślnie 10; określa, do jakiej odległości moby i redstone są aktywne)

Różnica jest duża: view-distance 10 ładuje cztery razy więcej chunków niż view-distance 5. Simulation distance 4 zamiast 10 oznacza, że entity poza czterema chunkami nie kosztują już czasu ticku.

Krok 4: ustaw limity entity

W bukkit.yml pod spawn-limits:

  • monsters: 50 (domyślnie 70)
  • animals: 10 (domyślnie 10)
  • water-animals: 3 (domyślnie 5)
  • ambient: 1 (domyślnie 15; nietoperze kosztują TPS i nic nie robią)

W paper-world-defaults.yml znajdziesz despawn-ranges i entity-per-chunk-save-limit. Zmniejsz limit zapisu dla item frames i armor standów, jeśli Twój serwer ma ich dużo.

Krok 5: flagi JVM Aikara

Domyślne ustawienia JVM nie są optymalne dla Minecraft. Flagi Aikara dostrajają garbage collector, dzięki czemu serwer rzadziej się zatrzymuje na czyszczenie pamięci. W panelu gry ustawiasz je w ustawieniach startu. Dla serwerów do 12 GB:

-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

Krok 6: sprawdź pluginy

Spark pokazuje dla każdego pluginu, ile czasu ticku zużywa. Plugin powyżej 5 ms na tick jest podejrzany. Usuń lub zastąp pluginy, które kosztują nieproporcjonalnie dużo czasu. Częsti winowajcy: clearlag (o ironio), stare pluginy hologramów i źle napisane pluginy minigier.

Czy więcej RAM pomoże przy niskim TPS?

Tylko jeśli serwerowi aktywnie brakuje pamięci (OutOfMemory w logach). Zwykle TPS to problem procesora, nie pamięci. 4 GB RAM z dobrymi ustawieniami działa lepiej niż 8 GB z domyślnymi ustawieniami.

Jaka jest różnica między TPS a MSPT?

TPS to liczba ticków na sekundę (cel: 20). MSPT to czas w milisekundach na tick (cel: poniżej 50). Przy MSPT powyżej 50 serwer nie jest w stanie utrzymać 20 ticków na sekundę i TPS spada. Spark pokazuje oba.

Czy muszę używać Paper dla dobrego TPS?

Nie jest to wymagane, ale zdecydowanie zalecane. Paper ma dziesiątki wbudowanych optymalizacji, których Vanilla i Spigot nie mają. Różnica na tym samym sprzęcie jest mierzalna: 5 do 30 procent niższe MSPT, w zależności od serwera.

Chcesz od razu zmierzyć? /spark tps działa na każdym serwerze Paper w HostValues. Zobacz pakiety Minecraft.

Źródła: dokumentacja PaperMC (Commands, Profiling), dokumentacja Spark i Minecraft Wiki (Tick, Commands/tick). Stan na 14 października 2026.

Wynajem własnego serwera Minecraft

Od €2,80 miesięcznie. Online w kilka minut, bez zobowiązań, z ochroną DDoS.

Jaki pakiet dla Państwa grupy?

Zobacz plany Zamów teraz

Pierwszy raz w HostValues? Z kodem WELKOM10 otrzymają Państwo 10% zniżki na pierwsze zamówienie.


Nadal masz pytania? Utwórz ticket, a nasz zespół Ci pomoże.

Powrót do bloga