Spark ukáže, proč server nestíhá tick. Od Paperu 1.21 je Spark součástí serveru, samostatný jar do plugins/ nedávejte. Na Fabricu, Forge a NeoForge ho stáhnete, dáte do mods/ a po restartu používáte stejné příkazy.
Profilujte ve chvíli, kdy server opravdu laguje. Prázdný server ukáže, že je v klidu. Příčinu sekání z něj nepoznáte.
Rychlý přehled
- Otevřete záložku Konzole.
- Na Paperu od verze 1.21 zadejte
spark. Souborspark.jarvplugins/nehledejte. - Až server laguje, spusťte
spark profiler start --timeout 30. - Otevřete odkaz
https://spark.lucko.me/.... - Nejdřív otevřete záložku World a podívejte se na počty entit.
- Pak čtěte TPS, MSPT, CPU (process) a strom Server thread.
- Na Fabricu, Forge a NeoForge stáhněte jar z webu Spark nebo z Modrinthu, vložte ho do
mods/a server restartujte.
Oficiální postup Paperu je v dokumentaci Paperu.
1. Ověřte Spark v konzoli
Server musí běžet. Otevřete záložku Konzole. Příkazy pište do pole Napište příkaz a stiskněte Enter… bez úvodního lomítka.
Zadejte plugins. Výpis Server Plugins (0) znamená, že v plugins/ není žádný jar. Spark přesto funguje: od Paperu 1.21 je zabudovaný do serveru. Samostatný spark.jar sem nedávejte. Dva Spark vedle sebe se perou o stejné příkazy.

Zadejte spark a spark help. Uvidíte verzi a seznam příkazů. Spark v nápovědě píše lomítko (/spark tps). Do konzole ho nepíšte.

Rychlý stav bez reportu:
spark tps2. Spusťte profiler, až server laguje
Dokumentace Paperu ukazuje /spark profiler start --timeout 600. To je 10 minut. Na první měření stačí 30 až 60 sekund, ale jen když lag právě probíhá.
Zadejte:
spark profiler start --timeout 30Konzole napíše, že profiler běží na pozadí a výsledek vrátí po 30 sekundách. Chcete skončit dřív, zadejte spark profiler stop.

3. Otevřete report
Až čas vyprší, konzole vypíše odkaz ve tvaru https://spark.lucko.me/.... Otevřete ho v prohlížeči. Odkaz po čase přestane fungovat, proto si ho uložte, jen dokud ho čtete.

4. Nejdřív počty entit
V reportu klikněte na ikonu i nahoře a otevřete záložku World. Tady je přehled, kolik entit server drží a v jakém světě. To je nejrychlejší kontrola, jestli lag nedělají mobové, předměty na zemi nebo jedna přecpaná farma.
Hledejte svět nebo typ entity, kde číslo skáče do stovek a tisíců. Vpravo uvidíte regiony a chunky s nejvyšším počtem. Chunk má 16 na 16 bloků, souřadnice spočítáte jako číslo chunku krát 16.

5. TPS, MSPT, CPU a paměť
V hlavičce reportu čtěte čísla v tomto pořadí.
1. TPS. Zdravý server drží 20. Pod přibližně 18 hráči cítí lag.
2. MSPT. Jeden tick má 50 ms. Medián MSPT musí zůstat pod 50 ms. Vysoký medián znamená, že tick je přetížený, i když průměrné TPS ještě chvíli drží 20.
3. CPU (process). Zátěž procesu Minecraftu. CPU (system) je celý stroj. Vysoké system a nízké process znamená, že tick nežere hra, ale něco vedle ní.
4. Memory (process). Paměť procesu. Sama o sobě lag nedokazuje.
5. Server thread. Kořen stromu. Tady uvidíte, co žere tick: entity, chunky, pluginy.

6. Strom Server thread
Rozbalte Server thread. Hledejte větve s vysokým procentem: entity, načítání chunků, konkrétní plugin.
Na prázdném serveru skoro celý čas sedí v čekání (recordTaskExecutionTimeWhileWaiting) a processPacketsAndTick má zlomky procenta. Server je v klidu. Na serveru, který laguje, je processPacketsAndTick tlustý a pod ním uvidíte konkrétní žrouty.

7. Seznam metod (Flat)
Přepněte pohled Flat. Seznam seřadí metody, které berou nejvíc času. Když nahoře opakujete název jednoho pluginu, ten plugin nejdřív vypněte a profil zopakujte.

8. Co s výsledkem
Entity drží strom nebo záložku World. Snižte počet mobů a předmětů na zemi, zmenšete view-distance a ohraničte svět worldborderem. Nové chunky přestaňte generovat za běhu. Předgenerujte je Chunky.
Plugin drží strom. Ten plugin vypněte a profil zopakujte. Když lag zmizí, hledejte novější verzi nebo náhradu. Nesbírejte pluginy pro jistotu.
Paměť skáče a pořád je plná. Server nestíhá úklid. Přidejte RAM k plánu, nebo uberete svět a pluginy. Spark vám neřekne přesné číslo gigabajtů. Řekne, že problém je v paměti.
CPU (system) je vysoko a process nízko. Na stroji běží něco mimo Minecraft. To nevyřešíte dalším pluginem.
Po každé změně spusťte nový profil pod stejnou zátěží. Porovnávejte medián MSPT, ne jen TPS.
9. Fabric, Forge a NeoForge
Na Fabricu, Forge a NeoForge Spark v serveru není. Stáhněte jar pro Fabric, Forge nebo NeoForge z spark.lucko.me/download nebo z Modrinthu. Na webu Spark je přímo napsáno, že Paper od verze 1.21 plugin nepotřebuje.

Na Modrinthu otevřete záložku Versions a filtrujte Fabric nebo Forge.

Soubor dejte do mods/. Server restartujte. Příkazy v konzoli jsou stejné: spark, spark tps, spark profiler start --timeout 30. Nový server kvůli Sparku nezakládejte.
Časté problémy
Příkaz spark neexistuje
Na Paperu od verze 1.21 zadejte spark bez lomítka a bez spark.jar v plugins/. Na starším Paperu, Spigotu, Fabricu nebo Forge chybí jar v plugins/ nebo mods/, nebo jste po nahrání nerestartovali.
Dva Spark najednou
Do plugins/ jste dali samostatný jar, i když Paper Spark už má v sobě. Odstraňte extra spark.jar a restartujte. Jinak se příkazy dublují a reporty jsou k ničemu.
Report vypadá v pořádku, hráči ale sekají
Profil jste spustili na prázdném serveru. Spusťte ho znovu, až je na serveru stejný počet hráčů a stejná aktivita jako při lagu.
Profiler běží příliš dlouho
--timeout 600 je 10 minut. Na první měření použijte 30 až 60 s, nebo spark profiler stop.