Performance tuning
Cílem je stabilních 20 TPS. Tento článek ukazuje, jak zjistit příčinu poklesu a co s ní.
Nejdřív změř, potom měň
Neupravuj konfiguraci naslepo podle návodů z internetu. Většina „optimalizací” jen rozbije herní mechaniky a skutečnou příčinu neodstraní.
Zjisti TPS
/tpsSpusť profiler
Plugin Spark:
/spark profiler startNech běžet 3–5 minut při běžném provozu.
Vyhodnoť
/spark profiler stopDostaneš odkaz s rozpadem podle pluginů a metod.
Rychlé výhry
| Nastavení | Kde | Efekt |
|---|---|---|
view-distance=8 | server.properties | velký |
simulation-distance=6 | server.properties | velký |
per-player-mob-spawns: true | paper-world-defaults.yml | střední |
disable-move-event: true (hopper) | paper-world-defaults.yml | střední |
Snížení despawn-ranges | paper-world-defaults.yml | střední |
view-distance=8
simulation-distance=6
max-players=40view-distance říká, jak daleko hráč vidí. simulation-distance říká,
jak daleko svět žije. Simulace je dražší — drž ji nižší.
Konfigurace Paperu
entities:
spawning:
per-player-mob-spawns: true
despawn-ranges:
monster:
soft: 32
hard: 96
animal:
soft: 32
hard: 96
hopper:
disable-move-event: true
chunks:
max-auto-save-chunks-per-tick: 8
prevent-moving-into-unloaded-chunks: true
collisions:
max-entity-collisions: 2max-entity-collisions: 0 sice zvýší TPS, ale rozbije farmy založené na
stlačování mobů. Hráči si toho všimnou dřív než ty.
Nejčastější příčiny lagů
| Příčina | Jak poznat | Řešení |
|---|---|---|
| Redstone smyčka | Spark ukáže TickListServer | najdi a znič |
| Farma mobů | mnoho entit v jednom chunku | omez despawn-ranges |
| Hoppery | Spark ukáže HopperBlockEntity | disable-move-event |
| Špatný plugin | Spark ukáže název pluginu | aktualizuj nebo odeber |
| Málo RAM | GC pauzy, viz /spark gc | viz RAM |
| Dynmap render | vysoké CPU během renderu | omez rychlost |
Hledání problémových chunků
/spark tickmonitorNebo Paper příkaz:
/paper entity listUkáže, kde je nejvíc entit.
Nemaž entity příkazem /kill @e bez filtru. Smažeš i itemframy, obrazy a
vozíky hráčů. Vždy specifikuj typ.
TPS vs. MSPT
- TPS — kolik tiků server stihne za sekundu (cíl 20).
- MSPT — kolik milisekund trvá jeden tik (cíl pod 50).
MSPT je citlivější ukazatel. TPS 20 s MSPT 45 znamená, že jsi na hraně.
Tipy
- Měň jednu věc a měř. Deset změn naráz ti neřekne, co pomohlo.
- Restartuj pravidelně — viz Scheduler.
- Neřeš TPS 19.8. Je to normální kolísání.
Poznámka
Náš hardware používá CPU s vysokým taktem. Minecraft je z velké části jednovláknový — víc jader ti TPS nezvýší.