Skip to main content

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.