RE:NODE

Provoz11 min čtení

Plný disk herního serveru: co smazat

Co zaplňuje disk herního serveru - logy, lokální zálohy, crash dumpy, dlaždice map, cache Workshopu - jak najít největší složky a co je bezpečné smazat.

1 čtenář

Když se u herního serveru zaplní disk, příčinou skoro nikdy není svět. Jsou to věci, které rostou vedle něj, aniž by je někdo hlídal: logy, které se nikdy nemažou, vlastní lokální zálohy hry, crash dumpy, dlaždice z mapových rendererů, cache stažená z Workshopu a staré světy, o jejichž vzniku už nikdo neví. Zjistit, která z nich to je, trvá minutu - vypíšeš složky podle velikosti a podíváš se na první tři - a úklid bývá pár smazání a jedno nastavení, aby se to neopakovalo. Důležité je stihnout to před dalším uložením, protože hra, která nemůže zapsat svět, může místo dobrého savu nechat soubor o nulové velikosti.

Tento článek popisuje příznaky, jak zjistit, co místo zabírá, se shellem i bez něj, typické viníky hru po hře, co je bezpečné smazat a co ne, a jak zabránit tomu, aby se disk zaplnil znovu. Kolik disku si pořídit hned na začátku, je otázka dimenzování, kterou řeší článek kolik úložiště herní server potřebuje.

Jak vypadá plný disk#

Plný disk se málokdy ohlásí sám. Hra běží dál z paměti a selže až ve chvíli, kdy chce zapisovat, takže se příznaky objevují na zvláštních místech:

  • Ukládání selhává. V konzoli No space left on device, IOException, Failed to save nebo ENOSPC, často při každém autosave.
  • Svět se vrátí zpět. Hráči se přihlásí a zjistí, že jim chybí postup od okamžiku před několika hodinami nebo dny - od posledního úspěšného uložení.
  • Server nenastartuje. Mnoho her při startu zapisuje lock soubor nebo log a bez možnosti zápisu skončí. Wings v Pterodactylu také před startem kontroluje diskovou kvótu a server, který ji překračuje, nespustí.
  • Aktualizace selhávají. SteamCMD hlásí chyby jako state is 0x202 after update job a server naběhne na staré verzi nebo s chybějícími soubory.
  • Nahrávání se zastaví v půlce. Správce souborů nebo SFTP klient ohlásí chybu a po nedokončeném souboru zůstane torzo.
  • Zálohy selhávají nebo jsou prázdné. Záloha se musí někde sestavit, než se odešle.

V panelu ukazuje využití disku číslo a graf vedle konzole, takže vidíš, jak blízko jsi limitu tarifu. Považuj 80 % za hranici, kdy se uklízí, ne 100 %.

Jak zjistit, co zabírá místo#

Postup je všude stejný: vypiš složky nejvyšší úrovně podle velikosti, vstup do největší a opakuj, dokud nenarazíš na věc, která by tak velká být neměla.

Se shellem - na vlastním stroji, na VDS nebo na herním serveru, kde máš SSH:

bash
# biggest items in the current folder, largest last$ du -sh -- * .[!.]* 2>/dev/null | sort -h | tail -15# the 20 largest files anywhere below here$ find . -type f -printf '%s\t%p\n' | sort -n | tail -20 | numfmt --field=1 --to=iec# everything over 500 MB$ find . -type f -size +500M -exec ls -lh {} +# how much is used and free on the volume$ df -h .

Vzor .[!.]* zachytí skryté složky, kde sídlí někteří z nejhorších viníků: .steam, .cache, .local/share. Právě když se na ně zapomene, lidé docházejí k závěru, že je disk plný ničeho.

Bez shellu, což je na herním panelu běžná situace, dělá stejnou práci pomaleji správce souborů nebo SFTP klient. WinSCP a FileZilla umí zobrazit velikosti složek a WinSCP po kliknutí na „Calculate“ u složky velikost sečte. Postupuj od kořene dolů: složka serveru, pak složka se savy, pak nejtěžší podsložka. Připojení popisuje SFTP a správce souborů.

Typičtí viníci#

Zhruba v pořadí podle toho, jak často jsou příčinou:

ViníkKdeJak velký bývá
Staré logylogs/, složky profilů, Saved/Logs/Stovky MB až desítky GB
Vlastní lokální zálohy hryVedle světaCelá kopie světa každá, krát jejich počet
Crash dumpyKořen, Saved/Crashes/, složky profilů100 MB až několik GB každý
Dlaždice mapových rendererůplugins/dynmap/web/tiles/, bluemap/web/maps/Často větší než samotný svět
Cache Workshopu a stahovánísteamapps/workshop/, .steam/, .cache/Několik GB na modovaných serverech
Opuštěné světyDalší složky světů, testovací savyCelý svět každý
Předgenerované chunkyRegion soubory MinecraftuRoste s druhou mocninou hranice
Nahrané archivy, které nikdo nesmazal.zip nebo .tar.gz v kořeniVelikost toho, co se nahrálo

Logy

Logy jsou první podezřelý, protože v mnoha hrách je ve výchozím stavu nemaže nic. DayZ a Arma 3 zakládají nový .RPT při každém spuštění a drží je všechny; standardní startovací skript 7 Days to Die zapisuje při každém běhu nový datovaný log; Minecraft staré logy komprimuje a drží je donekonečna, pokud to nenastavíš jinak. Server, který se každou noc restartuje a loguje podrobně, vyprodukuje za měsíc gigabajty. Kde logy leží u které hry, najdeš v logy herního serveru vysvětlené.

Lokální zálohy

Několik her a pluginů dělá zálohy do stejné složky jako svět. Valheim drží kopie -backups, ve výchozím stavu čtyři; zálohovací pluginy pro Minecraft zapisují zip soubory do složky uvnitř serveru; hry na Unreal Enginu často drží několik generací savů. Každá je plná kopie světa. Pomůžou proti poškozenému savu, ale nepomůžou proti ztracenému serveru a jsou častým důvodem zaplněného disku: plugin nastavený na 30 denních kopií světa o velikosti 5 GB potřebuje 150 GB.

Crash dumpy

Pád JVM po sobě nechá hs_err_pid*.log (malý) a, je-li to nastaveno, heap dump (.hprof) o velikosti haldy - 8 GB haldy je 8GB soubor. Hry na Unrealu drží složku na každý pád v Saved/Crashes/. Core dumpy v Linuxu (core nebo core.<pid>) z pádů nativního kódu mohou být velké jako paměť procesu. Jedna smyčka pádů jich může zanechat desítky.

Mapové renderery

Dynmap, BlueMap a squaremap renderují svět do obrázkových dlaždic pro webovou mapu. Velký prozkoumaný svět vyrenderovaný ve více úrovních přiblížení běžně vytvoří víc dat než svět sám a počet dlaždic Dynmapu se na velkém serveru počítá v milionech. Pokud dlaždice leží na disku a ne v databázi, bývají často největší jedinou složkou. Možnosti úložiště a nastavení renderu popisuje webové mapy s Dynmapem a BlueMapem.

Cache Workshopu a Steamu

SteamCMD stahuje obsah z Workshopu do steamapps/workshop/content/<appid>/ a některé hry ho pak kopírují do vlastní složky s mody - takže každý mod existuje dvakrát. Garry's Mod, Arma 3, DayZ, Project Zomboid i Unturned mají nějakou variantu tohoto. Mody odebrané ze seznamu serveru se z cache často neodstraní. SteamCMD navíc drží balíčky a dočasné soubory stahování ve vlastní složce.

Co je bezpečné smazat#

Pravidlo: maž to, co hra umí znovu vytvořit nebo co nečte, nikdy to, co drží stav, a nikdy nic, co server právě zapisuje.

Bezpečné smazat (server zastavený)Mazat s rozmyslemNikdy nemazat bez zálohy
Staré logy, komprimované logyCache Workshopu pro mody, které se stále používajíSložky světa a savů
Crash dumpy a core souboryLokální zálohy hryData hráčů a databáze účtů
hs_err_pid*.log, heap dumpy .hprofDlaždice map (vyrenderují se znovu, pomalu)Konfigurační soubory, které jsi upravoval
Nahrané archivy, které jsou už rozbalenéStaré světy, které považuješ za nepoužívanéDatové složky pluginů
Cache stažených modů, které se už nepoužívajíRegion soubory za hranicí světaSoubory banů, adminů a whitelistu

„Mazat s rozmyslem“ znamená, že to jde obnovit nebo nahradit, ale za nějakou cenu: znovu stáhnout 10 GB obsahu z Workshopu, den renderovat mapu, nebo přijít o jedinou kopii světa, který si někdo schovával na později. Pokud máš pochybnosti, nejdřív si to stáhni.

U logů není důvod držet všechno navždy. Rozumné pravidlo je týden až dva běžných logů a déle admin nebo chatové logy, které se používají při moderaci. Na vlastním serveru:

bash
# remove compressed Minecraft logs older than 14 days$ find logs/ -name '*.log.gz' -mtime +14 -delete# remove DayZ RPT files older than 7 days from the profiles folder$ find profiles/ -name '*.RPT' -mtime +7 -delete# remove crash dumps$ find . -name 'hs_err_pid*.log' -o -name 'core.*' | xargs -r rm -v

Každý příkaz nejdřív spusť s -print místo -delete a seznam si přečti, než ho potvrdíš. find ... -delete s překlepem v cestě je způsob, jakým světy mizí.

Jak zabránit opětovnému zaplnění#

Jednorázový úklid jen získá čas. Tyhle změny ten koloběh zastaví:

  • Rotuj logy automaticky. V panelu plánovač soubory sám mazat neumí, ale mnoho her má na to nastavení: hry od Bohemie jdou spustit s menším počtem logů, pluginy mívají volby retence a u Minecraftu konfigurace log4j určuje, kolik starých logů se drží. Na vlastním serveru to zařídí logrotate nebo noční find. Co a jak dlouho držet, popisuje logy, které stojí za to uchovat.
  • Omez zálohy ve hře. Sniž -backups ve Valheimu, nastav počet uchovávaných kopií v každém zálohovacím pluginu a na vše nad poslední den, dva spoléhej na zálohy z panelu. Na RE:NODE jsou zálohy z panelu uložené mimo stroj, ne ve vlastní složce serveru.
  • Vypni heap dumpy, pokud právě nehledáš konkrétní problém s pamětí. Přepínač JVM jako -XX:+HeapDumpOnOutOfMemoryError se hodí na jedno vyšetřování a na malém disku je jako trvalé nastavení nebezpečný.
  • Renderuj mapy méně nebo do databáze. Omez úrovně přiblížení, renderuj jen uvnitř hranice světa, nebo ukládej dlaždice do databáze, kde to mapový plugin podporuje.
  • Mody mazej pořádně. Když odebíráš mod z Workshopu, odeber ho ze seznamu modů serveru i ze složky s cache.
  • Nastav hranici světa před předgenerováním. Region soubory jsou funkcí prozkoumané plochy. Neohraničený svět Minecraftu, přes který hráči létají na elytrách, roste donekonečna; hranice světa a předgenerování mu dá limit.

Na RE:NODE se využití disku zobrazuje v grafu proti limitu tarifu na stránce konzole, takže pomalý nárůst uvidíš dřív, než bude akutní.

Rezerva, kterou potřebuješ nad rámec světa#

Disk, který je přesně tak velký jako soubory na něm, je už plný, protože několik běžných operací potřebuje dočasné místo:

  • Ukládání. Mnoho her zapíše nový save vedle starého a pak je prohodí, takže potřebují volné místo zhruba o velikosti světa.
  • Aktualizace. SteamCMD připraví změněné soubory, než je použije. Velký patch potřebuje volné místo srovnatelné se změněným obsahem.
  • Zálohy. Sestavení archivu potřebuje pracovní místo, než se odešle.
  • Nahrávání a rozbalování. Nahrát 3GB archiv a rozbalit ho na místě znamená potřebovat 3 GB plus velikost rozbaleného obsahu, dokud archiv nesmažeš.

Praktické pravidlo je držet na herním serveru volných 20-30 % disku a víc u serveru, který se často aktualizuje nebo má velký svět. Pokud se server po úklidu nedokáže udržet pod 70-80 %, je tarif prostě příliš malý pro svět, který na něm běží.

Když je disk plný a server neběží#

Pokud tohle čteš se serverem, který je dole, a plným diskem, pořadí, které to nezhorší:

  1. Server zatím znovu nespouštěj. Další nezdařené uložení může svět poškodit víc.
  2. Zkontroluj velikosti souborů světa oproti poslední záloze. Save, který je najednou drobný nebo nulový, je poškozený.
  3. Uvolni místo nejbezpečnějšími mazáními jako první: crash dumpy, staré logy, rozbalené uploady.
  4. Udělej zálohu aktuálního stavu, teď když je místo, a zamkni ji.
  5. Obnov svět ze zálohy, pokud krok 2 odhalil poškození.
  6. Spusť server a sleduj, jak první autosave projde.
  7. Odstraň příčinu podle seznamu výše, aby se disk znovu nezaplnil.

Pokud jsou zálohy z panelu jedinou dobrou kopií, obnova je na RE:NODE jedno tlačítko; co má záloha obsahovat u jednotlivých her, aby byla obnova úplná, popisuje strategie zálohování herního serveru.

FAQ#

Proč je disk mého herního serveru plný, když je svět malý?

Protože svět to málokdy způsobuje. Staré logy, lokální zálohy hry, crash dumpy, dlaždice map a cache Workshopu rostou vedle světa bez omezení. Když vypíšeš složky podle velikosti, viník je obvykle jasný během pár úrovní.

Může plný disk poškodit můj svět?

Ano. Pokud uložení začne a nemůže skončit, soubor světa může zůstat zkrácený nebo prázdný. Před restartem uvolni místo, porovnej velikost souboru světa s poslední zálohou a pokud se zmenšil, obnov ze zálohy.

Je bezpečné mazat logy za běhu serveru?

Staré, rotované logy - ano. Soubor, který server právě zapisuje - ne, nebo alespoň ne s užitkem, protože na Linuxu se místo neuvolní, dokud proces soubor nezavře. Nejdřív server zastav, nebo mazej jen starší soubory.

Zabírají zálohy z panelu místo na disku mého serveru?

Na RE:NODE jsou zálohy uložené mimo stroj, který chrání, ne ve složce serveru. Zálohy, které hra nebo plugin zapisuje do složky serveru, například automatické zálohy světa ve Valheimu, místo na disku serveru zabírají.

Kolik volného místa si mám nechat?

Dvacet až třicet procent. Ukládání, aktualizace, zálohy i rozbalení uploadu potřebují dočasné místo a disk, na který se soubory vejdou přesně, selže při první takové operaci.


Komentáře

Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.

0/2000