Přeskočit na obsah

Minecraft · Pokročilé

Jak zvýšit TPS a výkon Minecraft serveru

Když se na serveru „laguje“ — bloky se vracejí, moby se zasekávají, redstone zpomaluje — obvykle klesá TPS. Tento návod ukazuje, jak zjistit skutečnou příčinu a které úpravy mají největší efekt. Nejde o univerzální recept: každá změna mění i chování hry, proto upravujte postupně a po každé změně měřte.

Co je TPS a MSPT

Minecraft server počítá svět ve „ticích“, ideálně 20× za sekundu. TPS (ticks per second) ukazuje, kolik ticků server skutečně stihne — 20 je maximum. MSPT (milliseconds per tick) je doba výpočtu jednoho ticku. Dokud je MSPT pod 50 ms, drží se TPS na 20; nad 50 ms začne TPS klesat. MSPT je proto užitečnější ukazatel — prozradí problém dřív, než hráči něco poznají.

console
tps     # Paper/Spigot: TPS za poslední 1, 5 a 15 minut
mspt    # Paper: průměrná doba ticku
ℹ️ Info:Hlavní výpočet světa běží v jednom vlákně. Vyšší počet jader proto sám o sobě TPS nezvedne — rozhoduje, kolik práce musí server v jednom ticku udělat.

1Změřte, co server zdržuje (spark)

spark je profiler, který ukáže, kolik času zabírají jednotlivé pluginy, módy, entity a chunky. Novější buildy Paperu ho mají přibalený; jinak ho stáhněte z Modrinthu (existuje pro Paper, Fabric, Forge i NeoForge) a nainstalujte jako plugin nebo mód.

console
spark tps                      # TPS a MSPT včetně špiček
spark health                   # využití CPU, paměti a disku
spark profiler start           # spustí měření
# ...nechte běžet několik minut ve chvíli, kdy se laguje...
spark profiler stop            # ukončí měření a vypíše odkaz na report

V reportu rozbalte vlákno „Server thread“ a hledejte položky s největším podílem času — typicky konkrétní plugin, entity (tick entit), generování chunků nebo redstone/hoppery. Podle toho vyberte, který z dalších kroků řešit jako první.


2View distance a simulation distance

V souboru server.properties jsou dvě volby, které mají na zátěž největší vliv:

KlíčCo ovlivňujeVýchozí
view-distanceKolik chunků kolem hráče se posílá klientovi (co hráč vidí).10
simulation-distanceV jakém okruhu kolem hráče se svět „hýbe“ — rostou plodiny, pohybují se moby, běží redstone.10

Počet počítaných chunků roste s druhou mocninou vzdálenosti, takže i malé snížení je znát. Rozumný výchozí bod pro veřejný server je simulation-distance 4–6 a view-distance 6–8; na menším serveru si můžete dovolit víc. Změna se projeví po restartu.

properties
view-distance=8
simulation-distance=5
💡 Tip:Na Paperu můžete vzdálenosti nastavit i pro jednotlivé světy v spigot.yml (sekce world-settings), např. nižší pro Nether a End.

3Předgenerování světa pluginem Chunky

Generování nových chunků je jedna z nejnáročnějších operací. Když hráči prozkoumávají nový terén (hlavně na elytrách), server generuje za běhu a TPS padá. Řešením je vygenerovat svět předem v omezené oblasti a za ni hráče nepustit.

Nainstalujte Chunky (verze pro Paper, Fabric, Forge i NeoForge) a v konzoli zadejte:

console
chunky world world        # svět, který se má generovat
chunky center 0 0         # střed oblasti
chunky radius 5000        # poloměr v blocích
chunky start              # spustí generování
chunky pause              # pozastaví (pokračovat: chunky continue)

worldborder center 0 0
worldborder set 10000     # průměr hranice = 2 × poloměr
  • Generování spouštějte, když na serveru nikdo nehraje — dočasně server vytíží naplno.
  • Předgenerovaný svět zabírá místo na disku. Před spuštěním zkontrolujte volné místo v panelu a začněte menším poloměrem.
  • Stejný postup zopakujte pro Nether (world_nether) a End (world_the_end), pokud je hráči používají.

4Entity a farmy

Velké množství entit — zvířata v ohradách, itemy na zemi, vozíky, armor standy, mob farmy — patří k nejčastějším příčinám nízkého TPS. Na Paperu zjistíte, kde se entity hromadí, příkazem:

console
paper entity list                    # počty entit podle typu
paper entity list minecraft:cow      # kde přesně jsou krávy (podle chunků)
  • Domluvte se s hráči na pravidlech farem (maximální počet zvířat v ohradě, vypínatelné farmy).
  • Limity spawnu mobů upravíte v bukkit.yml v sekci spawn-limits; nižší hodnoty znamenají méně mobů v okolí hráčů.
  • V spigot.yml volby entity-activation-range určují, od jaké vzdálenosti se entity počítají zjednodušeně, a merge-radius slučuje itemy a zkušenosti ležící na zemi.

5Konfigurace Paperu

Paper má vlastní konfiguraci ve složce config/: paper-global.yml (celý server) a paper-world-defaults.yml (výchozí hodnoty pro světy). Často upravované volby v paper-world-defaults.yml:

VolbaK čemu je
entities.spawning.despawn-rangesVzdálenost, ve které moby mizí. Menší hodnoty = méně mobů ve světě.
entities.spawning.per-player-mob-spawnsRozdělí limit mobů mezi hráče rovnoměrněji.
collisions.max-entity-collisionsOmezí počet kolizí, které entita počítá — pomáhá u nahuštěných zvířat.
misc.redstone-implementationAlternativní implementace redstonu (např. ALTERNATE_CURRENT) je rychlejší, ale může změnit chování některých obvodů.
hopper.disable-move-eventZrychlí hoppery; nezapínejte, pokud plugin (např. ochrana pozemků) událost potřebuje.
chunks.max-auto-save-chunks-per-tickRozloží ukládání světa do více ticků a omezí krátké záseky.

Přesný význam a výchozí hodnoty najdete v dokumentaci Paperu. Názvy voleb se mezi verzemi mohou lišit — vždy se řiďte souborem, který vám server vygeneroval.

⚠️ Pozor:Před úpravou konfigurací si soubory zálohujte (stačí je stáhnout přes Files nebo SFTP). Chybné odsazení v YAML souboru může zabránit startu serveru.

6Pluginy a módy

  • Odeberte pluginy a módy, které nepoužíváte. Každý přidává práci při startu i za běhu.
  • Pokud spark ukáže jeden plugin s velkým podílem času, zkuste jeho aktualizaci, úpravu konfigurace, nebo náhradu.
  • Na Fabricu pomáhají serverové optimalizační módy, např. Lithium; na Forge/NeoForge existují podobné (např. ModernFix). Ověřte si kompatibilitu s modpackem.
  • Pluginy, které pravidelně „mažou lag“ hromadným odstraňováním entit, řeší jen příznak a hráčům mizí věci. Lepší je najít zdroj.

Pomůže víc RAM?

Jen tehdy, když serveru paměť opravdu dochází. Poznáte to v příkazu spark health nebo v grafech panelu: paměť se drží u limitu, v reportu sparku jsou časté a dlouhé pauzy garbage collectoru, případně server padá s OutOfMemoryError. Pokud je problém v entitách, generování chunků nebo v pluginu, víc RAM TPS nezvedne. Navýšení tarifu uděláte v klientské zóně a projeví se po restartu.

Pokud teprve vybíráte tarif, podívejte se na Minecraft hosting — u doporučovače vždy uvádíme, z jakých předpokladů odhad vychází.


Rychlý přehled

PříznakPravděpodobná příčinaKde začít
Lag při průzkumu nového terénuGenerování chunkůChunky + world border
Lag stále na stejném místěFarma, hromada entit, redstonepaper entity list
Lag roste s počtem hráčůPříliš velká simulation distanceserver.properties
Pravidelné krátké zásekyUkládání světa, garbage collectorspark profiler
Lag po instalaci pluginu/móduKonkrétní plugin nebo módspark profiler

Související: instalace pluginů, zálohy a změna verze.

Stále nízké TPS?

Pošlete podpoře odkaz na report ze sparku a popis, kdy se lag objevuje. Z reportu je příčina vidět mnohem lépe než z popisu.


Hledáte hosting pro Minecraft server?

Paper, Fabric, Forge i modpacky v Pterodactyl panelu na vlastním hardwaru ve Frankfurtu nad Mohanem. Když si nebudete vědět rady, napište podpoře.