Игровому серверу нужно достаточно диска под пять вещей: установленную игру, мир и его сохранения, моды и контент из мастерской, логи и локальные резервные копии - и сверху примерно 20-30 процентов свободного места, чтобы следующему обновлению было куда скачаться. На практике это 5-15 ГБ для лёгких игр вроде Terraria, Factorio и Counter-Strike 1.6, 15-40 ГБ для большинства игр на выживание и песочниц и 40-100 ГБ для больших установок с модами - Arma 3, DayZ с большим списком модов, ARK, Counter-Strike 2 с картами из мастерской. Диск - ресурс, который отказывает тише всех: сервер прекрасно работает на 97% заполнения до того обновления или сохранения, которому нужны последние несколько гигабайт, а потом ломается так, что о диске почти никогда не упоминается.
Что заполняет диск игрового сервера#
Диск любого игрового сервера делится на одни и те же категории. При покупке люди думают только о первой.
- Установка. Бинарные файлы сервера и игровые данные, скачанные через SteamCMD или собственный инструмент игры. Растёт с каждым крупным обновлением.
- Мир и сохранения. Файлы регионов, базы данных мира, данные игроков. Растёт по мере игры, иногда круто.
- Моды, плагины и контент из мастерской. На серверах с модами часто больше самой установки.
- Логи и дампы падений. Немного за день, много за год, если их никто не чистит.
- Локальные резервные копии. Каждая встроенная ротация backup пишет рядом полные копии мира.
- Запас под обновления. Свободное место, чтобы SteamCMD скачал изменённые файлы, прежде чем заменить старые.
Практический способ расчёта: сложите установку, ожидаемый размер мира в конце его жизни (или к следующему вайпу), запланированные моды и резервные копии, которые хранятся локально, а затем добавьте сверху четверть. В таблице ниже эта сумма уже посчитана для распространённых игр.
Диск по играм#
Это реалистичные объёмы для обычного сервера с разумным списком модов, а не размер свежей загрузки. Они оставляют место для роста и для обновлений.
| Игра | Реалистичный объём | Чем заполняется |
|---|---|---|
| Terraria, Counter-Strike 1.6 | 5-10 GB | Крошечные установки; миры и логи |
| Factorio | 5-15 GB | Маленькая установка; сохранения и моды |
| Valheim | 10-20 GB | Установка ~2 GB; мир и его резервные копии |
| Minecraft (Paper) | 15-50 GB | Рост мира, тайлы веб-карты, данные плагинов |
| Minecraft (большая сборка модов) | 30-75 GB | Jar-файлы модов, большие миры, больше измерений |
| Garry's Mod | 15-40 GB | Аддоны и карты из мастерской |
| Project Zomboid | 20-35 GB | Установка плюс множество мелких файлов чанков карты |
| Unturned, Don't Starve Together | 10-20 GB | Карты и моды из мастерской |
| FiveM | 20-60 GB | Стриминговые машины, карты, одежда, кэш |
| Counter-Strike 2, Team Fortress 2 | 35-60 GB | Большая установка, карты из мастерской, демки |
| DayZ | 35-85 GB | Маленькая установка, очень большие списки модов |
| 7 Days to Die | 55-100 GB | Установка, сгенерированные миры, файлы регионов |
| Palworld, Satisfactory, The Front | 40-90 GB | Установки Unreal и растущие сохранения |
| Arma 3 | 40-100 GB | Моды обычно больше базовой установки |
| ARK: Survival Ascended | 60-100 GB на карту | Большая установка, моды, сохранения |
Стоит заметить две закономерности. Игры с самыми маленькими установками не всегда требуют меньше всего диска: сервер DayZ весит несколько гигабайт, а его списки модов - десятки. А игры с постоянными исследуемыми мирами - Minecraft, 7 Days to Die, Project Zomboid - растут со стороны мира, поэтому их потребность определяется тем, сколько живёт мир, а не установкой. В статье требования игровых серверов по играм цифра диска приведена рядом с RAM, CPU и портами для каждой игры из каталога RE:NODE.
Почему обновлениям нужно свободное место#
SteamCMD скачивает изменённый контент во временную область внутри той же установки, проверяет его и затем подменяет. На мгновение на диске существуют и старая, и новая версии каждого изменённого файла. Крупному обновлению игры на 30 ГБ может понадобиться несколько гигабайт свободного места, которое через минуту снова освободится.
Если этого места нет, обновление обрывается на полпути, часто с ошибкой, в которой о диске ни слова. Типичные:
Error! App '896660' state is 0x202 after update job.Error! App '258550' state is 0x602 after update job.Коды состояния бывают разными, и не каждое ненулевое состояние - проблема диска, но неудачное обновление на почти заполненном диске - почти всегда она. Наполовину применённое обновление может также оставить сервер, который запускается и падает при загрузке или отклоняет подключения из-за несовпадения версий. Решение во всех случаях одно: освободить место и снова запустить обновление с validate, чтобы SteamCMD проверил каждый файл. Состояния, validate и бета-ветки описаны в статье разбор SteamCMD.
Как растут миры и сохранения#
Игровые миры растут тремя разными способами, и каждый требует своего внимания.
Рост за счёт исследования. Minecraft, 7 Days to Die, Project Zomboid, Valheim и Terraria хранят рельеф по мере того, как игроки его открывают. Сервер Minecraft хранит мир в файлах регионов по 32 на 32 чанка; мир, исследованный загруженным публичным сервером, за месяцы вырастает на гигабайты, а предварительно сгенерированная граница в 10 000 блоков в каждую сторону может перевалить далеко за десять гигабайт ещё до того, как кто-то что-то построит. Граница мира останавливает рост на выбранном вами размере - об этом статья граница мира и предгенерация.
Рост за счёт строительства. Игры на выживание с постоянными базами - Rust, ARK, DayZ, Palworld - хранят каждую постройку и каждый предмет. Файл мира растёт в течение цикла вайпа и сбрасывается при вайпе мира. Рассчитывайте на конец цикла.
Рост за счёт истории. Некоторые данные никогда не очищаются, если этого не сделать самому: данные каждого игрока, который когда-либо заходил, базы данных плагинов, статистика, логи чата, таблицы логирования блоков в Minecraft, записывающие каждое изменение блока. База CoreProtect на загруженном сервере может перерасти сам мир, если не запускать её команду очистки по расписанию.
Моды, контент из мастерской и кэши#
Моды - самая непредсказуемая статья на диске любого сервера.
- Загрузки из мастерской. Игры с поддержкой Steam Workshop скачивают элементы в папку мастерской, обычно
steamapps/workshop/content/<appid>/внутри установки, хотя некоторые игры держат собственный кэш. Garry's Mod, Arma 3, DayZ, Project Zomboid, Unturned и Counter-Strike 2 - все берут контент из Workshop. Коллекция из сотни элементов может занимать несколько гигабайт, а старые элементы не всегда удаляются, когда вы убираете их из списка. Как это устроено в каждой игре, описано в статье моды Steam Workshop на выделенных серверах. - Копии модов. Некоторые конфигурации держат копию мода в мастерской и копию на сервере - классический случай это папки модов DayZ и Arma 3, скопированные из каталога мастерской, - что удваивает их размер.
- Стриминговые ассеты. FiveM раздаёт клиентам кастомные машины, карты и одежду и строит из них папку кэша. Ресурсы и кэш большого RP-сервера вместе легко занимают десятки гигабайт.
- Веб-карты. Dynmap и BlueMap для Minecraft рендерят мир в тайлы изображений. При высокой детализации папка тайлов большого мира может оказаться больше самого мира. Рендерите меньше уровней масштаба или используйте настройку с меньшим разрешением, а компромиссы описаны в статье веб-карты с Dynmap и BlueMap.
Логи, дампы падений и локальные резервные копии#
Вот куда исчезает диск, хотя никто не решал его тратить.
Логи. Большинство игр пишет новый лог при каждом запуске и никогда не удаляет старые. Многословный сервер на Source, сервер Minecraft с болтливым плагином или сервер FiveM, выводящий отладочную информацию, могут писать сотни мегабайт в неделю. Minecraft сжимает старые логи в logs/*.log.gz, но хранит их вечно. Какие логи стоят места и как долго их держать, описано в статье логи, которые стоит хранить.
Дампы падений. Серверы на Unity и Unreal пишут файлы дампов при падении, а сервер в цикле падений может записать их десятки, иногда по сотне мегабайт каждый. После любой нестабильной недели ищите файлы .dmp и папки crashes.
Локальные резервные копии. -backups в Valheim, backup миров в 7 Days to Die, плагины резервного копирования Minecraft и папка backup в Palworld - все пишут копии мира рядом с ним. Четыре копии мира на 2 ГБ - это 8 ГБ. К тому же защищают они от меньшего, чем думают: копия на том же диске переживёт повреждённое сохранение, но не удалённый сервер и не отказавший диск. Разница объясняется в статье backup, которые действительно восстанавливаются.
На RE:NODE backup из панели хранятся вне машины, которую они защищают, - именно это делает их резервными копиями, а не вторыми экземплярами, - и слоты backup входят в каждый тариф. Встроенные backup игр всё равно пишут на собственный диск сервера, поэтому либо держите их число небольшим, либо отключите их в пользу backup из панели.
Разбор на примере: сервер Paper на год#
Сообщество планирует сервер выживания на Paper примерно на тридцать игроков, с границей мира, веб-картой и обычными плагинами, и хочет знать, сколько диска понадобится к концу первого года, а не в первый день.
- Установка. Jar-файл сервера, его библиотеки и jar-файлы плагинов - заметно меньше 1 ГБ. Округлим до 1 ГБ.
- Мир. Граница в 7 500 блоков в каждую сторону с предгенерацией для верхнего мира; границы поменьше для Незера и Энда. Предгенерация такой области плюс год строительства дают где-то 8-15 ГБ на три измерения. Пусть будет 12 ГБ.
- Веб-карта. Детальный рендер той же области может быть размером ещё с один мир. Рендер меньшего числа уровней масштаба уменьшает его вдвое. Заложим 8 ГБ.
- Данные плагинов. Логгер блоков вроде CoreProtect с очисткой, сохраняющей 30 дней, плюс данные экономики, приватов и статистики. 2-4 ГБ на загруженном сервере. Заложим 3 ГБ.
- Логи. Сжатые ежедневные логи, хранимые 90 дней. Меньше 1 ГБ.
- Локальные резервные копии. Нет, потому что backup идут в панель и хранятся в другом месте. Если бы плагин резервного копирования писал копии рядом с миром, здесь нужно было бы добавить два-три размера мира.
- Запас. Четверть сверху от 25 ГБ выше, то есть ещё примерно 6 ГБ.
Итого около 31 ГБ, что на линейке тарифов указывает на ступень с 30-50 ГБ диска, а не на самую маленькую. То же упражнение для сервера друзей без веб-карты и границы дало бы меньше 10 ГБ. Ценность этого подсчёта не в точности результата, а в самом списке: люди забывают именно про веб-карту, логгер блоков и локальные резервные копии, и именно они заполняют диск.
Как найти, что заполнило диск#
Когда на сервере кончается место, сначала найдите виновника, а потом уже удаляйте. На VDS или везде, где есть shell:
$ df -h /home/container$ du -sh /home/container/* | sort -h | tail -15$ du -sh /home/container/logs /home/container/crashes 2>/dev/null$ find /home/container -name "*.dmp" -size +50M$ find /home/container/logs -name "*.log.gz" -mtime +30 -deletedf -h показывает, насколько заполнен том; du -sh * | sort -h выводит самые большие папки верхнего уровня, самые большие - последними. Спускайтесь в самую большую. Последняя строка удаляет сжатые логи старше тридцати дней - на Minecraft это безопасно, а для других игр команду нужно адаптировать под их структуру логов. ncdu, если он установлен, делает то же самое интерактивно и удобнее для исследования.
На хостинге с панелью без shell файловый менеджер показывает размеры папок и умеет удалять пакетно, и SFTP-клиенты умеют то же самое. Смотрите сначала в логи, папки дампов падений, папки локальных резервных копий, контент мастерской и тайлы веб-карт - именно в таком порядке эти пять мест дают большинство неожиданно заполненных дисков. Очистка для каждой игры описана в статье на игровом сервере закончилось место.
Объём диска против скорости диска#
Объём и скорость диска - отдельные вопросы, и покупка большего количества одного ничего не даёт другому. Скорость важна для нескольких конкретных операций: сохранений мира, которые блокируют игру на время записи, загрузки чанков и регионов, пока игроки исследуют мир, запуска сервера, создания и восстановления резервных копий. Сервер, упирающийся в CPU, от неё быстрее тикать не станет. Какие операции её ощущают, разобрано в статье что на самом деле меняет NVMe.
RE:NODE использует NVMe на каждом тарифе, в пуле ZFS, поэтому вопрос скорости решён, и остаётся вопрос объёма. В линейке тарифов каждой игры указан объём диска - от 5 ГБ на самых маленьких тарифах Terraria и Counter-Strike 1.6 до 100 ГБ на самых больших тарифах Minecraft, 7 Days to Die и Arma 3, - а переход на тариф выше увеличивает объём на уже существующем сервере.
FAQ#
Сколько свободного места на диске должно быть у игрового сервера?
Минимум 20% объёма и 30% на играх с крупными и частыми обновлениями или большими списками модов. Большая часть этого места нужна для обновлений, которым одновременно требуется место под старые и новые файлы. Остальное поглощает логи, дампы падений и рост сохранений между чистками.
Почему обновление сервера упало со странным кодом состояния?
На почти заполненном диске - почти всегда из-за места. SteamCMD сообщает ненулевое состояние после задания обновления, а не пишет, что диск заполнен. Освободите несколько гигабайт и снова запустите обновление с validate, чтобы проверить каждый файл.
Учитываются ли резервные копии в диске моего сервера?
Встроенные backup игр - да, потому что они пишутся в собственные папки сервера. Как учитываются backup из панели, зависит от хостинга. На RE:NODE они хранятся вне машины, которую защищают, - это и есть то свойство, которое важно, если потерян сам сервер.
Насколько большим становится мир Minecraft?
Это зависит от исследования. Мир небольшой группы может за год остаться в пределах нескольких гигабайт; публичный сервер, где игроки свободно исследуют мир, может дойти до десятков гигабайт. Граница мира ограничивает его, а предгенерация внутри границы заранее показывает итоговый размер.
Быстрее ли диск большего объёма?
Нет. Объём и скорость - разные вещи. Серверу, который подтормаживает при сохранениях, нужен более быстрый накопитель или меньшие сохранения, а не больше гигабайт. Серверу, у которого падают обновления, нужно больше свободного места, а не более быстрый накопитель.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.