Blog

Lagy na Minecraft serveru: jak zjistit příčinu a opravit je

Bloky se vrací, mobové se teleportují a hráči si stěžují? Ukážeme, jak poznat, kde je problém, změřit ho pluginem spark a opravit nejčastější příčiny lagů.

11. října 20263 min čteníColdHost

„Server laguje“ je nejčastější stížnost hráčů. Pod tím se ale může skrývat pět úplně různých problémů. Než začneš přidávat RAM nebo mazat pluginy, zjisti, jaký lag to je a co ho způsobuje. Tady je postup, který používáme i my při řešení tiketů.

Tři druhy lagu

DruhJak se projevujeKde je problém
Serverový lag (nízké TPS)Bloky se po vytěžení vracejí, mobové se teleportují, laguje to všem najednouServer nestíhá počítat
Síťový lag (vysoký ping)Zpožděné akce, laguje jen některým hráčůmPřipojení hráče nebo síť
Klientský lag (nízké FPS)Trhaný obraz, ale server reaguje normálněPočítač hráče

Pokud laguje jen jednomu hráči, problém je téměř jistě na jeho straně. Pokud všem najednou, hledej na serveru.

Jak lag změřit

Server počítá svět ve ticích. Za sekundu jich chce stihnout 20 (20 TPS), takže jeden tick smí trvat nejvýš 50 milisekund. Když trvá déle, TPS klesá a hra se zpomaluje.

  • Na Paperu napiš do konzole tps a mspt – uvidíš ticky za sekundu a délku jednoho ticku.
  • Nejlepší nástroj je spark. Na novějších verzích Paperu je přímo součástí serveru, jinak ho nainstaluješ přes Plugin manager.
spark tps
spark profiler start
(nech běžet pár minut, ideálně když lag nastává)
spark profiler stop

Profiler vrátí odkaz na přehledný report. V něm uvidíš, co zabírá nejvíc času – konkrétní plugin, entity, generování chunků nebo třeba hoppery.

Nejčastější příčiny a řešení

1. Generování nových chunků

Hráči, kteří objevují nové oblasti (hlavně na elytrách), nutí server generovat terén – a to je nejnáročnější práce vůbec. Řešením je svět pregenerovat pluginem Chunky a nastavit hranici světa.

2. Příliš velká view-distance

Každý hráč drží kolem sebe načtené chunky. Snížení view-distance a hlavně simulation-distance v server.properties má na výkon obrovský vliv. Hodnoty 6–8 pro simulaci jsou pro většinu serverů ideální.

3. Entity a farmy

Stovky zvířat v ohradě, itemy na zemi a obří mob farmy umí server položit. Pomáhá rozumný limit zvířat na chunk (pluginem nebo v konfiguraci Paperu) a domluva s hráči na pravidlech pro farmy.

4. Redstone a hoppery

Hoppery neustále kontrolují, jestli mají co přesouvat. Tisíce hopperů nebo rychlé redstone hodiny zvládnou zpomalit i silný stroj. Paper má nastavení, která jejich zátěž výrazně snižují – projdi návod optimalizace výkonu.

5. Náročné nebo špatně napsané pluginy

Spark report ukáže, který plugin zabírá nejvíc času. Často to bývá zastaralý plugin nebo plugin, který dělá těžkou práci v každém ticku. Aktualizuj ho, nastav ho jinak nebo ho nahraď.

6. Málo (nebo zbytečně moc) RAM

Když RAM dochází, Java často „uklízí“ paměť a server se při tom na chvíli zasekává. Pozná se to podle pravidelných krátkých lagů. Příliš mnoho RAM ale výkon nezlepší – víc v článku Kolik RAM potřebuje Minecraft server.

7. Slabý procesor

Pokud je po všech úpravách MSPT pořád vysoké, server prostě potřebuje rychlejší jádro. Modpacky a velké servery proto doporučujeme provozovat na Ryzenu 9 5900X s taktem až 4,8 GHz.

Když to není server

  • Vysoký ping: hráč na Wi-Fi nebo přetíženém připojení. Pomůže kabel nebo restart routeru.
  • Nízké FPS: slabší počítač hráče. Na Javě pomohou optimalizační módy jako Sodium, případně nižší vzdálenost vykreslování.
  • Výpadky spojení u všech: může jít o útok. Ochranu řešíme za tebe – viz DDoS ochrana.

Rychlý kontrolní seznam

  1. Zjisti, jestli laguje všem (server), nebo jednomu (hráč).
  2. Změř TPS a MSPT, pusť spark profiler.
  3. Pregeneruj svět a nastav hranici.
  4. Sniž simulation-distance a view-distance.
  5. Omez entity a hoppery, zkontroluj farmy.
  6. Aktualizuj nebo vyměň náročné pluginy.
  7. Teprve pak řeš víc RAM nebo silnější procesor.

Nevíš si rady se spark reportem? Pošli nám odkaz v tiketu a podíváme se na to s tebou.

Pojď hrát.

Vyber balíček nebo si server nastav v konfigurátoru. Za pár minut jsi online.