Diagnostika zpoždění serveru Minecraft a nízké TPS

Jak Minecraft funguje (Co způsobuje zpoždění?)

Klíčem k pochopení toho, co způsobuje zpoždění, je pochopit, jak Minecraft funguje. Serverový software Minecraft funguje v podobné záležitosti s jedním klíčovým problémem: pro hlavní herní smyčku neexistují žádné limity pro více vláken nebo načasování. Když server přejde do tic, prochází každou aktualizací TileEntity, aktualizací entity, aktualizací bloku, událostmi a dalšími procesy, dokud není hotovo. To vše se děje v jednom vláknu a další smyčka nemůže začít, dokud nedokončí aktuální. Svět se neaktualizuje, hráči se nebudou pohybovat a entity budou zamrzlé na místě. V ideálním případě by každý tik neměl trvat déle než 50 ms k udržení 20 tiků za sekundu (TPS). To může jít až na 55,55 ms pro 18 TPS s minimálními problémy. Nižší než toto a začnete vidět zpoždění.

Typické příčiny zpoždění

Existuje mnoho věcí, které mohou způsobit zpoždění, ale několik z nich bude nejpravděpodobnějším viníkem většiny serverů.

  • Využití souboru : Jakýkoli plugin, který neustále čte soubory přehrávače, zejména při událostech, jako je pohyb, poškození nebo interakce. Několik příkladů by mohly být některé PVP příznaky nebo Glow pluginy, které budou nepřetržitě číst ze souborů přehrávače.
  • Ploché soubory jako databáze : Když máte zásuvné moduly, které používají velké soubory ke sledování velkého množství dat, iterování přes tento soubor nebo v paměti v závislosti na tom, jak jsou uložena, bude trvat dlouho. Mnoho zásuvných modulů to dělá a nečiní žádná opatření proti tomu, jak, když se databáze nafouknou, doba zpracování ovlivní tik serverů. Hodně to uvidíte při načítání velkých konfigurací MagicSpells nebo při používání systémů oprávnění, které používají YAML místo řádné databáze, jako je PEX a GroupManager.
  • Příliš mnoho operací : Když plugin vytvoří příliš mnoho entit nebo se pokusí provést složité úkoly na událostech, jako je pohyb, začnete vidět zpoždění. I když každé spuštění trvá méně než 1 ms, když zpracováváte událost 20 000 krát za sekundu, stane se exponenciální. Pluginy, které to mohou způsobit, jsou pluginy pro úpravu světa, jako je VoxelSniper a WorldEdit; nebo ochranné zásuvné moduly, jako jsou Anti Cheaty a World Protections.
  • Načteno příliš mnoho bloků : Jeden blok je 16*16*256. To nemusí znít jako mnoho, ale když se to vynásobí, znamená to, že na jeden blok je 65 536 bloků. Každý hráč může mít kolem sebe nahráno více než 200 kusů, v závislosti na vaší konfiguraci. To je více než 13 107 200 bloků. To zabírá hodně paměti. Také, pokud i 1 % z nich jsou dlaždicové entity, je načteno 131 072 dlaždicových entit, které potřebují aktualizovat každý tik. Mody jsou známé tím, že mají pomalé doby zpracování na TileEntities.
  • Cascading WorldGen : Toto je, když plugin nebo mod generuje struktury mimo daný blok. To způsobí, že se další blok načte, vygeneruje a pak to znovu spustí, pokud také začne přetékat struktury do dalšího bloku. Toto je špatný design jménem tvůrců a jakýkoli plugin nebo mod, který to dělá, by měl být okamžitě odstraněn.
  • Dlaždice entity : Viz část LagGoggles níže.

Nalezení příčiny zpoždění je v dnešní době obecně jednoduchý postup, protože většina serverového softwaru Minecraft je postavena s zahrnutými nástroji pro profilování.

Zprávy časování pro Spigot/PaperSpigot

Chcete-li získat podrobnou zprávu o časování, můžete použít příkaz následovat.

/timings on

Budete chtít pár minut počkat a nechat to prodlevat, zatímco vaše načasování běží. Po chvíli vygenerujte zprávu.

/timings paste

Získáte tak odkaz na webovou stránku s pěkným rozčleněním sestavy se snadnými možnostmi prosít všechna získaná data. Více o tom, jak je číst, se můžete dozvědět na Spigotově časové wiki .

Poté budete chtít časování vypnout, protože nechcete, aby nevyžádaná data ucpávala vaše další čtení, a časování přidává dodatečný čas tiku.

/timings off

Zprávy časování pro Sponge

Chcete-li získat podrobnou zprávu o časování, můžete použít příkaz následovat.

/sponge timings on

Budete chtít pár minut počkat a nechat to prodlevat, zatímco vaše načasování běží. Po chvíli vygenerujte zprávu.

/sponge timings report

Získáte tak odkaz na webovou stránku s pěkným rozpisem sestavy se snadnými možnostmi prosít všechna data, která získáváte. Protože Spongeův systém časování je založen na Spigotově, můžete se dozvědět více o tom, jak je číst na Spigotově časovací wiki .

Poté budete chtít časování vypnout, protože nechcete, aby nevyžádaná data ucpávala vaše další čtení, a časování přidává dodatečný čas tiku.

/sponge timings off

Můžete také resetovat časování.

/sponge timings reset

Kroky ke snížení zpoždění

  • Ke spuštění Minecraftu použijte správné argumenty pro váš soubor skriptu. Přečtěte si více o vhodných argumentů Java zde
  • Použijte LuckPerms nebo správce oprávnění, který místo plochého souboru používá správnou databázi
  • Úplně se vyhněte nakladačům kusů
  • Odstraňte vše, co způsobuje kaskádové generování světa
  • Omezte zásuvné moduly Anti Cheat, abyste nebyli příliš horliví
  • Omezte viditelnou vzdálenost hráčů uvnitř server.properties
  • Vyčistěte nepřátelské davy po uplynutí stanovené doby
  • Denně restartujte server, abyste odstranili úniky z Javy
  • NIKDY znovu nenačítat server, to způsobuje úniky a další problémy
  • Používejte FastAsync verze pluginů, jako jsou WorldEdit a VoxelSniper
  • Omezte velikost svého světa, aby se neustále nevytvářely nové kousky
  • Omezte množství pluginů, které používáte. Ne všechny pluginy jsou vytvořeny dobře a čím více jich máte, tím více problémů se setkáte

LagGoggles

Velká část zpoždění na modifikovaných serverech pochází z dlaždicových entit. Jedná se o entity vytvořené pro bloky, které se používají pro zpracování funkčnosti a událostí bloku. Pokud to trvá příliš dlouho nebo je jich příliš mnoho, může se prodloužit čas na jeden tik, který sníží celkové TPS serveru. Způsob, jak si tyto problémy představit, je použít mod nazvaný LagGoggles. Tento mod si můžete stáhnout z CurseForce .


Jak nastavit klasický server Tekkit na Ubuntu 16.10

Jak nastavit klasický server Tekkit na Ubuntu 16.10

Používáte jiný systém? Co je Tekkit Classic? Tekkit Classic je modpack pro hru, kterou každý zná a miluje; Minecraft. Obsahuje některé z ver

Nastavte 7 Days to Die Server na Ubuntu 14

Nastavte 7 Days to Die Server na Ubuntu 14

V této příručce se dozvíte, jak nastavit svůj vlastní server 7 Days to Die (7D2D) na Ubuntu. Upozorňujeme, že tato hra je stále v předběžném přístupu a že th

Nastavení serveru Half Life 2 na CentOS 6

Nastavení serveru Half Life 2 na CentOS 6

Tento návod pokryje proces instalace herního serveru Half Life 2 na systém CentOS 6. Krok 1: Instalace předpokladů Aby bylo možné nastavit ou

Counter-Strike Global Offensive Server Launcher na Ubuntu

Counter-Strike Global Offensive Server Launcher na Ubuntu

Ti, kteří mají zkušenosti s nastavením vyhrazeného CS:GO (Counter-Strike: Global Offensive), vědí, že proces používání rozhraní příkazového řádku ke správě

Nastavení Counter Strike: Source na Debianu

Nastavení Counter Strike: Source na Debianu

V této příručce nastavíme herní server Counter Strike: Source na Debianu 7. Tyto příkazy byly testovány na Debianu 7, ale měly by také fungovat

Jak nainstalovat Unturned 2.2.5 na Debian 8

Jak nainstalovat Unturned 2.2.5 na Debian 8

V této příručce se dozvíte, jak nastavit server Unturned 2.2.5 na Vultr VPS se systémem Debian 8. Poznámka: Toto je upravená verze Unturned, která

Jak nainstalovat Cuberite na server CentOS 6 nebo 7

Jak nainstalovat Cuberite na server CentOS 6 nebo 7

Úvod Co je Cuberite? Cuberite je škálovatelná, open-source implementace serveru Minecraft, která je napsána v C++. Má snadno použitelný plugi

Instalace Teamspeaku na CentOS 7

Instalace Teamspeaku na CentOS 7

Teamspeak je VOIP server, který lze použít ke komunikaci týmů/více lidí. Je relativně lehký a bezpečný, protože jsou vydávány aktualizace

Jak nainstalovat SteamCMD na váš VPS

Jak nainstalovat SteamCMD na váš VPS

V tomto tutoriálu nainstalujeme SteamCMD. SteamCMD lze použít ke stažení a instalaci mnoha herních serverů Steam, jako je Counter-Strike: Global Offensiv

Spuštění serveru Teamspeak 3 na CentOS 6.4

Spuštění serveru Teamspeak 3 na CentOS 6.4

Spuštěním následujících příkazů nainstalujte server Teamspeak 3. # Secure Iptables iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -

Jak nainstalovat Left 4 Dead Server na CentOS 7

Jak nainstalovat Left 4 Dead Server na CentOS 7

V této příručce vysvětlím, jak nainstalovat a nakonfigurovat server L4D na CentOS 7. Instalace Left 4 Dead Než začneme, musíme se ujistit, že

Jak nainstalovat server Minecraft na Ubuntu 14.04

Jak nainstalovat server Minecraft na Ubuntu 14.04

Používáte jiný systém? V tomto článku nainstalujeme server Minecraft na Ubuntu. Ujistěte se, že jste přihlášeni pod uživatelem, který je

Jak nainstalovat SA-MP San Andreas Multiplayer na CentOS 7

Jak nainstalovat SA-MP San Andreas Multiplayer na CentOS 7

V tomto tutoriálu se naučíte, jak nastavit server SA-MP (San Andreas Multiplayer) na CentOS 7.

Nastavte server TeeWorlds

Nastavte server TeeWorlds

TeeWorlds je bezplatná a open-source online střílečka pro více hráčů. V tomto tutoriálu vysvětlím, jak vytvořit server TeeWorlds. Tyto kroky byly

Spusťte svůj vlastní server Arma 3 na Ubuntu 14

Spusťte svůj vlastní server Arma 3 na Ubuntu 14

Přehled Tato příručka pokryje instalaci a provoz vašeho serveru Arma 3 pomocí SteamCMD a obrazovky. Pro další informace týkající se tl

Jak nainstalovat klasický server Tekkit na CentOS 6/7

Jak nainstalovat klasický server Tekkit na CentOS 6/7

Používáte jiný systém? V tomto tutoriálu je dobré vytvořit server Tekkit Classic. Tekkit je další populární modpack vytvořený pro Minecraft. Vzhledem k am

Jak nainstalovat Glowstone (Minecraft) na server CentOS 7

Jak nainstalovat Glowstone (Minecraft) na server CentOS 7

Používáte jiný systém? Úvod Glowstone je bezpochyby nejvíce optimalizovaný server pro Minecraft. Software se může pochlubit nízkou spotřebou paměti a používáním

Jak nainstalovat Unturned na Linux

Jak nainstalovat Unturned na Linux

Používáte jiný systém? Úvod V této příručce se naučíte, jak nastavit a nainstalovat Unturned server v systému Linux. Unturned je populární survival

Nastavení herního serveru JC2:MP v Debianu

Nastavení herního serveru JC2:MP v Debianu

V této příručce nastavíme server Just Cause 2: Multiplayer Linux. Tyto příkazy byly testovány na Debianu 7 x64, ale měly by fungovat i na th

Nainstalujte Minecraft Server na Fedoru 26

Nainstalujte Minecraft Server na Fedoru 26

Používáte jiný systém? V tomto tutoriálu vás provedu nastavením serveru Minecraft na vysoce výkonném SSD VPS na Vultr. Naučíte se ho

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více