Interval autosavu je nejvíc postupu, o který mohou hráči přijít najednou. Hra, která zapisuje svět každých třicet minut, při zastavení serveru bez čistého uložení ztratí průměrně patnáct minut hraní každého hráče a v nejhorším celých třicet. Zkrácení intervalu tuto ztrátu omezí, za cenu krátkého zadrhnutí při každém zápisu světa - na velkém světě znatelného, na malém neviditelného. Pro většinu serverů je rozumný střed deset minut: nastav -saveinterval 600 ve Valheimu, server.saveinterval 600 v Rustu (to je už výchozí), AutoSaveSpan v Palworldu na pár minut a výchozí pětiminutový interval v Minecraftu nech být. Pak se postarej, aby byl každý plánovaný stop čistý, protože čisté zastavení uloží svět bez ohledu na interval.
Proč hry neukládají průběžně#
Svět, ve kterém se hráč pohybuje, je držen v paměti. Zápis na disk znamená serializovat tisíce nebo miliony objektů - změny terénu, stavby, tvory, kontejnery - do souboru a na většině herních serverů tato práce probíhá na hlavním vlákně simulace, nebo ho blokuje. Po dobu zápisu se simulace zastaví nebo zpomalí. Hráči to cítí jako zadrhnutí: půlsekundové zamrznutí, trhání pohybu, dveře, které se otevřou pozdě.
Každá hra tedy volí kompromis. Ukládáš zřídka a zadrhnutí je vzácné, ale pád stojí hodně. Ukládáš často a pád stojí málo, ale zadrhnutí se vrací častěji. Interval je tento kompromis vyjádřený číslem a správné číslo závisí na velikosti tvého světa, rychlosti úložiště a na tom, jak často se server zastaví nečistě.
Nastavení pro jednotlivé hry#
| Hra | Nastavení | Kde | Výchozí |
|---|---|---|---|
| Valheim | -saveinterval | Argument spuštění, sekundy | 1800 |
| Minecraft (vanilla) | žádné | Pevně ve hře | každých 6000 ticků (5 min) |
| Minecraft (Paper) | ticks-per.autosave | bukkit.yml | 6000 ticků |
| Rust | server.saveinterval | server.cfg nebo konzole, sekundy | 600 |
| Palworld | AutoSaveSpan | PalWorldSettings.ini, sekundy | 30 |
| ARK | AutoSavePeriodMinutes | GameUserSettings.ini [ServerSettings] | 15 |
| Factorio | autosave_interval | server-settings.json, minuty | 10 |
| Space Engineers | AutoSaveInMinutes | SpaceEngineers-Dedicated.cfg | 5 |
| V Rising | AutoSaveInterval, AutoSaveCount | ServerHostSettings.json | liší se podle verze |
| Project Zomboid | SaveWorldEveryMinutes | .ini serveru | 0 |
| Don't Starve Together | žádné | Ukládá na začátku každého herního dne |
Výchozí hodnoty se mezi verzemi her mění, takže tabulku ber jako místo, kde hledat, ne jako záruku, a než cokoli změníš, zkontroluj dodávaný výchozí soubor své verze.
Valheim
Třicetiminutový výchozí interval ve Valheimu je nejčastěji litované nastavení na jakémkoli serveru. Svět je jeden soubor .db zapisovaný jedním průchodem a pád nebo zastavení kvůli nedostatku paměti ztratí všechno od posledního uložení. Snížení na 600 omezí ztrátu na deset minut. Na velkém, hodně zastavěném světě trvá uložení dost dlouho, aby si hráči všimli zadrhnutí; log hlásí každé jako World saved ( 450.123ms ) nebo podobně, takže přesně vidíš, co stojí. Pod zhruba pět minut se větší stížností stává samotné zadrhávání. Zbytek startovacích nastavení Valheimu najdeš v průvodci dedikovaným serverem Valheim.
Minecraft
Minecraft ukládá jinak než většina her. Zapisuje změněné chunky do region souborů a Paper rozkládá práci přes ticky místo ukládání všeho najednou:
chunks: auto-save-interval: default max-auto-save-chunks-per-tick: 24auto-save-interval: default se řídí hodnotou ticks-per.autosave v bukkit.yml, což je 6000 ticků - pět minut při 20 TPS. max-auto-save-chunks-per-tick omezuje, kolik se zapíše v jednom ticku, a proto server na Paperu zadrhnutí při ukládání ukazuje jen zřídka. Chunky se ukládají i při uvolnění z paměti. Důvod cokoli z toho měnit je malý; pokud se ukládání objevuje v profilu ze sparku, problémem je úložiště nebo velikost světa, ne interval. O save-off, save-all a konzistentních kopiích píše článek záloha a obnova světa v Minecraftu.
Rust
Rust ukládá celou mapu každých server.saveinterval sekund, výchozí 600, a pokaždé vypíše řádek s počtem entit a časy. Na mapě pozdě po wipe se stovkami tisíc entit může uložení trvat sekundu i víc, což hráči cítí jako zamrznutí. Zvýšení intervalu kvůli menšímu zamrzání je na velkých serverech běžné; vyměňuje lag za riziko. Mnoho majitelů nechává 600 a zamrznutí přijímá, protože pád na modovaném Rustu pozdě ve wipe není vzácný.
Palworld
AutoSaveSpan leží uvnitř dlouhého řádku OptionSettings=(...) v PalWorldSettings.ini, v sekundách. Výchozí hodnota ukládá velmi často. Na vytíženém serveru s mnoha základnami je každé uložení těžší, a pokud hráči hlásí pravidelné zamrzání, zkus interval zvýšit na pár minut, ne naopak. Jak ten řádek upravit, aniž ho rozbiješ, vysvětluje nastavení serveru Palworld.
ARK
AutoSavePeriodMinutes=15 pod [ServerSettings] je výchozí hodnota a ukládání v ARKu je na velké mapě s mnoha ochočenými tvory dlouhé - několik sekund zamrznutí je na starém světě normální. Patnáct minut je rozumný kompromis; pod deset minut na velkém světě jsou zamrzání natolik častá, že obtěžují.
Factorio
Factorio při ukládání pozastaví hru všem hráčům a zobrazí ukazatel ukládání. autosave_interval (minuty, výchozí 10) a autosave_slots (výchozí 5) řídí, jak často se ukládá a kolik rotujících autosavů se drží. Na Linuxu non_blocking_saving vytvoří fork procesu, který ukládá na pozadí bez pozastavení; je označen jako experimentální a paměť se po dobu běhu krátce zdvojnásobí. Své místo má u megabází v pozdní hře s dlouhým ukládáním. Víc v průvodci headless serverem Factorio.
Hry, které ukládají průběžně
Některé hry zapisují neustále, po regionech nebo po chuncích při jejich uvolnění, a „interval“ je méně důležitý. Project Zomboid zapisuje chunky mapy při uvolnění a hráče při odhlášení a SaveWorldEveryMinutes má výchozí hodnotu 0, tedy žádné samostatné uložení celého světa podle časovače. 7 Days to Die podobně zapisuje regiony při uvolnění a v serverconfig.xml nezpřístupňuje jednoduchý interval; příkaz konzole saveworld vynutí úplné uložení. Don't Starve Together ukládá na začátku každého herního dne. U těchto her pád ztratí méně, než by tabulka naznačovala, ale vynucené uložení před plánovaným zastavením a zálohami má pořád smysl.
Co uložení skutečně stojí#
Uložení zdražují tři věci a jen jedna z nich je interval.
- Velikost světa. Množství zapisovaných dat roste s prozkoumanou oblastí, stavbami a entitami. Měsíc starý svět se může ukládat desetkrát déle než nový. Proto server, který nikdy nezadrhával, začne zadrhávat pozdě ve svém životě.
- Práce na hlavním vlákně. Serializace objektů obvykle probíhá na vlákně simulace. Víc volného CPU pomáhá, ale sama práce se u většiny her nedá paralelizovat. Proč jedno vytížené vlákno vypadá jako nízké celkové využití, vysvětluje čtení využití CPU na herním serveru.
- Úložiště. Zápis stovek megabajtů na pomalé disky přidá sekundy. NVMe udělá z části s diskem téměř nulovou položku, a proto je zbylé zadrhnutí na rychlém úložišti skoro celé serializace. Kde to pomáhá a kde ne, rozebírá co NVMe skutečně mění.
Měř, než něco změníš. Většina her loguje každé uložení s dobou trvání, nebo alespoň s časovou značkou na začátku a na konci. Sleduj tři nebo čtyři uložení ve špičce a znáš skutečnou cenu. Uložení za 200 ms každých pět minut není nic; uložení za 3 sekundy každých pět minut je problém návrhu a řešením je svět nebo tarif, ne delší interval.
Kolik ztratí pád#
Pokud se server zastaví nečistě v náhodný okamžik, očekávaná ztráta je polovina intervalu a nejhorší případ celý interval. A to na hráče - skupina deseti lidí, která ztratí po patnácti minutách, přichází o dvě a půl hodiny společné hry.
| Interval | Průměrná ztráta | Nejhorší případ | Zadrhnutí při ukládání za hodinu |
|---|---|---|---|
| 30 min | 15 min | 30 min | 2 |
| 15 min | 7,5 min | 15 min | 4 |
| 10 min | 5 min | 10 min | 6 |
| 5 min | 2,5 min | 5 min | 12 |
| 2 min | 1 min | 2 min | 30 |
Druhé číslo, na kterém záleží, je, jak často k nečistým zastavením dochází. Stabilní server, který se restartuje jen podle plánu, ztrácí málo, ať je interval jakýkoli. Server provozovaný blízko limitu paměti, silně modovaný server nebo server s hrou s častými chybami způsobujícími pády se zastavuje nečistě často a u nich stojí krátký interval za hodně zadrhávání. Pokud nevíš, jak často tvůj server padá, zjisti to nejdřív - proč se ti herní server pořád restartuje ukazuje, jak rozlišit pád od zastavení kvůli paměti a od plánu.
Čistá zastavení snižují význam intervalu#
Každá hra v tabulce ukládá, když je řádně zastavena. Čisté zastavení - vlastní příkaz hry pro stop nebo signál, který hra zpracuje - zapíše svět před ukončením. Kill ne.
- Stop a Restart v panelu normálně pošlou příkaz hry pro zastavení nebo signál a počkají. To uloží.
- Kill ukončí proces bez varování. To ztratí všechno od posledního uložení.
- Zastavení kvůli nedostatku paměti se z pohledu hry chová jako kill.
- Výpadek hostitele nebo uzlu se chová jako kill.
Na RE:NODE se server, který dosáhne limitu paměti, zastaví jádrem a čistě znovu spustí, místo aby byl nechán swapovat - lepší pro všechno ostatní na stroji a pro hru nepřipravený stop bez uložení. Pokud graf paměti ukazuje, že server naráží na strop, zkrať interval ukládání, dokud neopravíš příčinu nebo nepřejdeš na větší tarif; hledání příčiny popisují úniky paměti na herních serverech. Rozdíl mezi čistým zastavením a killem je také důvod, proč některé hry jen pro Windows běžící pod Wine vyžadují zvláštní péči: zda ukládají při signálu stop, závisí na hře, jak vysvětluje Wine a Proton pro servery jen pro Windows.
Autosavy nejsou zálohy#
Mnoho her drží rotující soubory autosavů - sloty ve Factoriu, číslované autosavy v Satisfactory, .old a časované zálohy ve Valheimu. Pomáhají přesně u jedné poruchy: když je poslední uložení poškozené. Leží ve stejné složce, na stejném disku, na stejném serveru, takže smazaný server, špatný mod, který poškodí každé uložení, kterého se dotkne, nebo omyl ve správci souborů je odnese všechny.
Záloha je kopie jinde, pořizovaná podle plánu, kterou jsi aspoň jednou obnovil. A záloha obsahuje jen to, co hra v tu chvíli zapsala na disk, takže záleží na pořadí: nejdřív ulož, pak zálohuj.
Na RE:NODE záložka Schedules spouští uspořádané úlohy se zpožděním - příkaz konzole, záloha, akce napájení - podle výrazu cron, takže tato sekvence může běžet sama:
Schedule: every 6 hours (0 */6 * * *) 1. Console command: save (the game's own save command) 2. Wait 30 seconds 3. Create backupMísto save použij příkaz své hry: save-all pro Minecraft, saveworld pro 7 Days to Die, server.save pro Rust. Sloty pro zálohy jsou na každém herním tarifu, ukládají se mimo stroj a obnovují se tlačítkem. Poslední část té věty, kterou lidé přeskakují, vysvětluje článek zálohy, které opravdu obnovíš. Syntaxi plánu popisuje výrazy cron vysvětlené.
Ruční uložení v důležitých chvílích
Interval chrání před náhodným pádem. Některé okamžiky náhodné nejsou a ruční uložení před nimi stojí sekundu a riziko úplně odstraní. Ulož před:
- Instalací nebo aktualizací modu či pluginu. Pokud server při načítání spadne, svět na disku je aktuální a vrácení modu nic neztratí.
- Aktualizacemi hry. Udělej uložení a zálohu; aktualizace může uložení převést způsobem, který stará verze nepřečte.
- Boss fighty, raidy a eventy. To jsou minuty, o které hráči nechtějí přijít, a okamžiky, kdy se servery pod zátěží nejspíš zasekávají.
- Velkými adminskými zásahy. Mazání entit, mazání regionů, změna modifikátorů světa, úprava konfigurace, kterou hra čte při startu.
- Předáním konzole někomu novému. Uložení ti dá čistý bod, ke kterému se vrátíš, když příkaz nedopadne dobře.
Většina her uložení loguje, takže než budeš pokračovat, počkej na potvrzující řádek v konzoli. V několika hrách existují příkazy, které zmiňují „save“, ale uložení jen zařadí do fronty místo toho, aby ho provedly; že je hotovo, ti řekne řádek v logu.
Výběr intervalu#
Krátký postup, který funguje pro jakoukoli hru:
- Najdi nastavení a jeho aktuální hodnotu v tabulce výše nebo ve výchozí konfiguraci své hry.
- Změř cenu uložení ve špičce, z logu.
- Spočítej nečistá zastavení za poslední měsíc z historie konzole nebo z oznámení o pádech.
- Vyber interval, při kterém je zadrhnutí pro hráče nepostřehnutelné nebo je pro ně ztráta přijatelná - zeptej se jich, co jim vadí víc.
- Přidej plán uložení a zálohy, aby záloha nebyla nikdy starší než poslední uložení.
- Vrať se k tomu, až svět poroste. Nastavení zvolené v prvním týdnu může být ve třetím měsíci špatné.
FAQ#
Jaký interval autosavu mám použít ve Valheimu?
-saveinterval 600, tedy deset minut, vyhovuje většině skupin. Třicetiminutový výchozí interval po pádu ztratí příliš. Jdi níž jen pokud je svět tak malý, že ukládání není znát, a zkontroluj dobu uložení v logu.
Proč můj server každých pár minut na vteřinu zamrzne?
To je téměř vždy autosave. Ověř to porovnáním zamrznutí s řádky o ukládání v logu. Větší svět nebo pomalejší úložiště ho prodlužuje. Prodloužení intervalu ho zřídí, ale zvětší, co ztratí pád.
Zabírá kratší interval autosavu víc místa na disku?
Obvykle ne u samotného světa, který se přepisuje. Hry, které drží rotující autosavy, zabírají při častějším ukládání víc místa jen tehdy, pokud drží i víc slotů. Zápisů na disk přibývá, což na NVMe skoro nevadí.
Přijdu o postup, když server restartuju z panelu?
Ne, pokud je restart čistý. Běžný Stop nebo Restart nechá hru před ukončením uložit. Kill, pády a zastavení kvůli nedostatku paměti jsou případy, které ztratí všechno od posledního autosavu.
Mám před zálohou uložit?
Ano. Záloha kopíruje to, co je na disku. Pokud hra naposledy ukládala před dvaceti minutami, záloha je dvacet minut stará. Pošli příkaz pro uložení, počkej, až skončí, a pak zálohuj.




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.