Základní diagnostika výkonu Minecraft serveru pomocí spark
Rychlá identifikace příčiny výkonového problému Minecraft serveru pomocí pluginu spark.
Použij při:
-
nízkých TPS
-
lagování serveru
-
krátkých zásecích
-
vysokém CPU
-
podezření na problém s pluginem
-
podezření na paměť nebo GC
Oficiální dokumentace:
https://spark.lucko.me/docs
1. Zkontroluj TPS a MSPT
/spark tps
Sleduj hlavně:
-
TPS - ideálně 20
-
MSPT - ideálně pod 50 ms
| Hodnota | Význam |
|---|---|
| 20 TPS, MSPT < 50 ms | Server stíhá |
| TPS < 20 | Server nestíhá zpracovávat ticky |
| MSPT > 50 ms | Jeden tick trvá příliš dlouho |
2. Zkontroluj celkový stav
/spark health
Sleduj:
-
CPU
-
RAM
-
MSPT
-
Garbage Collector
-
disk
Pokud je CPU vysoké zároveň s vysokým MSPT, pokračuj profilerem.
Pokud CPU není vysoké, ale objevují se pravidelné záseky, zkontroluj GC a lag spikes.
3. Pokud server laguje soustavně
Spusť profiler:
/spark profiler start --timeout 60
Po dokončení otevři spark Viewer.
Začni u:
Server thread
Postupuj po větvích s nejvyšším procentem času.
Hledej zejména:
-
konkrétní plugin
-
scheduler task
-
event handler
-
entity ticking
-
chunk loading
-
generování světa
-
databázovou nebo jinou blokující operaci
Pokud velkou část profilu tvoří:
waitForNextTick()
nejde o problém. Server pouze čeká na další tick.
4. Pokud server pouze občas zamrzne
Nejdříve zjisti délku problémových ticků:
/spark tickmonitor --threshold-tick 50
Pokud se například objevují ticky:
150 ms
250 ms
400 ms
spusť profiler pouze pro pomalé ticky:
/spark profiler start --only-ticks-over 100
Po několika výskytech problému:
/spark profiler stop
Tento profil je vhodnější než běžný profiler, protože ignoruje normální ticky.
5. Pokud problém vypadá na paměť nebo GC
Zkontroluj GC:
/spark gc
Pro průběžné sledování:
/spark gcmonitor
Pokud se lagy objevují ve stejný čas jako GC, zkontroluj také:
/spark heapsummary
Častý GC automaticky neznamená, že server potřebuje více RAM.
6. Pokud problém hlásí pouze jeden hráč
Zkontroluj jeho ping:
/spark ping --player PLAYER
Pokud server drží:
20 TPS
nízké MSPT
a problém má pouze jeden hráč, pravděpodobně nejde o výkon serveru.
Rychlý rozhodovací postup
Server laguje pořád
/spark tps
/spark health
/spark profiler start --timeout 60
Server se jen občas zasekne
/spark tickmonitor --threshold-tick 50
/spark profiler start --only-ticks-over 100
Podezření na RAM nebo GC
/spark gc
/spark heapsummary
Problém má jen jeden hráč
/spark ping --player PLAYER
Nejdůležitější je vždy získat spark profil v době, kdy se problém skutečně projevuje.