RE:NODE

CPU и диск для сервера Valheim: какое железо нужно

Автор Команда RE:NODE
11 мин чтения


Выделенному серверу Valheim нужно одно быстрое ядро CPU больше, чем много ядер, и быстрый накопитель больше, чем много места. Для группы до десяти игроков одного-двух vCPU на современном процессоре с высокой частотой хватает для чистого мира, третье ядро помогает сильно модифицированному, а 10-20 ГБ SSD или NVMe вмещают сервер, мир и разумный набор бэкапов с запасом. Железо не может исправить одно: значительная часть симуляции Valheim выполняется на компьютерах игроков, а не на сервере, поэтому медленный сервер и медленный игрок выглядят одинаково, и стоит понять, что именно у вас, прежде чем покупать что-либо ещё. Память разобрана отдельно в статье сколько RAM нужно серверу Valheim; эта статья обо всём остальном.

Почему Valheim опирается на один поток#

Valheim - игра на Unity, и, как у большинства игр на Unity, основную работу её сервер выполняет в главном потоке. Каждый кадр этот поток обрабатывает входящие сетевые сообщения, обновляет принадлежащие ему объекты и решает, что и кому отправлять. Другие потоки помогают с сетью и записью сохранений, но главный цикл нельзя разделить по ядрам. Когда он занят, добавление ядер ничего не даёт; помогает только ускорение каждого ядра.

Поэтому совет для Valheim, как и для многих игровых серверов, - выбирать тактовую частоту и производительность одного ядра, а не их количество. Почему сервер на "25%" в четырёхъядерном представлении может быть полностью загружен, объясняет статья как читать загрузку CPU у однопоточных серверов, а общую картину по разным играм даёт статья требования игровых серверов к CPU.

У Valheim есть особенность, благодаря которой её сервер легче, чем о нём говорят. Мир разделён на зоны, и каждую зону симулирует первый игрок, который в неё вошёл. Монстры, физика и устойчивость построек в этой зоне считаются на его компьютере; сервер сохраняет результат и передаёт его остальным. Сервер симулирует только зоны, которыми никто не владеет. На практике это значит:

  • Сервер с десятью игроками, разбросанными по карте, выполняет гораздо меньше симуляции, чем можно ожидать, потому что основная работа идёт на клиентах.
  • Игрок со слабым процессором или плохим соединением заставляет лагать свои зоны для всех рядом, и никакое улучшение сервера не поможет.
  • Нагрузка на CPU сервера возникает в основном из-за синхронизации объектов между игроками, а не из-за работы мира.

Так что работа сервера - в основном учёт: отслеживать каждый объект (игра называет их ZDO), решать, какие нужны каждому клиенту, и отправлять изменения. Эта стоимость растёт вместе с числом объектов рядом с активными игроками и числом игроков, одновременно перемещающихся по оживлённым местам.

Что на самом деле нагружает CPU сервера#

Примерно в порядке влияния на типичный групповой мир:

НагрузкаПочему обходится дорогоЧто делать
Игроки в плотных базахТысячи объектов для синхронизацииРазносите базы, используйте крупные детали
Много игроков одновременно в движенииЧаще меняются владельцы зон, больше данныхОбычно нормально до десяти игроков
Большие загоны с животнымиКаждое животное - живой объект с ИИОграничьте загоны, забивайте лишних
Мусор на землеКаждый брошенный предмет - объектПериодически убирайте
Сохранения мираСериализация всего мираБыстрый накопитель, разумный интервал
МодыОт нуля до очень многогоИзмеряйте до и после каждого мода

Отдельно стоит упомянуть изменение рельефа. Каждая правка рельефа хранится как изменение своей зоны, а зоны с большим числом правок дороже загружать, сохранять и отправлять. База на выровненном плато заметно тяжелее базы на естественной земле. Оба случая разобраны в статьях изменение рельефа на серверах и производительность по биомам.

Моды - непредсказуемый фактор. Мод для удобства, который меняет меню крафта, ничего не стоит серверу. Мод, добавляющий существ, спавнеры или мировые системы, может сильно нагрузить сервер, а несколько модов, сканирующих каждый объект по таймеру, способны загрузить ядро целиком на зрелом мире. Если вы используете моды, измерьте CPU в спокойный вечер до и после добавления каждого.

Тактовая частота, ядра и что такое vCPU#

Хостинги продают CPU в виде vCPU или доли ядра. Важны два числа: сколько их вам дают и насколько быстро работает каждое.

  • Насколько быстро. Современное ядро настольного класса на высокой частоте запустит тот же мир Valheim с меньшим временем кадра, чем более старое или низкочастотное серверное ядро. Хостинги редко сообщают, что именно вы получаете, а на общих узлах модель часто вообще не указана. Если пинг в порядке, а игроки всё равно видят подтормаживания по мере роста группы, подозревайте скорость одного ядра.
  • Сколько. Одно полное ядро тянет небольшой чистый мир. Второе ядро даёт потокам сохранения и сети место для работы, не отнимая время у главного цикла, что сглаживает задержку при сохранении мира. Больше двух для чистого сервера почти ничего не даёт; модифицированный может использовать третье.
  • Жёсткие лимиты или всплески. У некоторых хостингов CPU - жёсткое ограничение: вы получаете ровно купленную долю и не больше. У других можно выходить за неё, когда соседи спокойны. Жёсткий лимит предсказуем; всплеск быстрее в удачный день и медленнее в плохой. Разницу объясняет статья общий CPU и шумные соседи.

На RE:NODE CPU - жёсткое ограничение до купленной доли, измеряемое в процентах одного ядра, так что 150 - это 1,5 vCPU. Сервер на 100% своей доли работает медленно, но не ломается и за это никогда не приостанавливается - однако если ваш график стоит на лимите, пока игроки жалуются, доля слишком мала для того, что делает мир.

Накопитель: размер установки, файлы мира и бэкапы#

Valheim скромен по диску. Цифры:

ЭлементТипичный размер
Установка сервера (valheim_server, app 896660)около 2 ГБ
Файл .fwl миранесколько сотен байт
.db мира, новыйнесколько МБ
.db мира, месяцы игрыпримерно 20-150 МБ
Каждый автоматический бэкаппримерно размер .db
BepInEx и набор модовот нескольких МБ до нескольких сотен

Файл .db растёт вместе с исследованной областью, деталями построек, предметами, прирученными животными и правками рельефа. Его увеличивает как исследование дальних краёв карты, так и активное строительство группы. Очень большие миры на давно работающих серверах могут превышать эти цифры, особенно с модами, добавляющими контент.

Сервер ведёт собственные скользящие бэкапы рядом с миром, по умолчанию четыре, управляемые параметрами -backups, -backupshort и -backuplong. Эти копии лежат в той же папке на том же диске, поэтому учитывайте их в бюджете диска. Они защищают от повреждённого сохранения, но не от потери диска или сервера. Настоящие бэкапы должны храниться в другом месте; как это настроить, описано в статье бэкапы Valheim и повреждение мира.

В сумме чистый сервер с давним миром и встроенными бэкапами умещается значительно меньше чем в 5 ГБ. 10 ГБ комфортно для большинства групп; 15-20 ГБ оставляют место для большого набора модов, логов, второго мира или архива старого. Общие версии - статьи сколько места нужно игровому серверу и что делать, когда диск заполнился.

NVMe, SSD или жёсткий диск: что меняется#

Скорость накопителя важна для Valheim в трёх местах: запуск сервера, сохранение мира и создание бэкапов.

Сохранение. Valheim держит мир в памяти и записывает его каждые -saveinterval секунд (по умолчанию 1800). Во время записи сервер замирает или замедляется, и игроки ощущают это как короткое подвисание. На быстром накопителе оно обычно короткое. На жёстком диске при большом мире оно может быть достаточно долгим, чтобы вызвать рывки или зависший вход. Какая часть сохранения идёт вне главного потока, менялось между версиями игры, поэтому не полагайтесь на фиксированную цифру: в логе печатается строка World saved с затраченным временем, и это ваше число.

Запуск. Загрузка большого .db с жёсткого диска идёт медленнее, что удлиняет каждый перезапуск.

Бэкапы. Копирование мира, по расписанию или перед обновлением, быстрее на быстром накопителе и меньше мешает работающей игре.

НакопительПауза сохранения на большом миреВердикт
NVMe SSDкороткаяидеально
SATA SSDот короткой до умереннойподойдёт
Жёсткий дискможет быть заметнойизбегайте для активного мира

После перехода с вращающегося диска на SSD выигрыш меньше. NVMe по сравнению с SATA SSD помогает больше всего на больших мирах и когда один диск делят несколько серверов. Где разница реальна, а где это маркетинг, рассказывает статья что на самом деле меняет NVMe.

Если вы застряли на более медленном накопителе, всё равно уменьшайте -saveinterval, а не увеличивайте. Более короткий интервал даёт меньшие паузы, но чаще, и ограничивает то, что вы потеряете при нештатной остановке сервера. Компромисс разобран в статье интервалы автосохранения.

Подбор по размеру группы#

Сводя вместе CPU, диск и память для чистого или слегка модифицированного мира:

ГруппаvCPURAMДискПримечания
1-3 игрока12 ГБ10 ГБновый или небольшой мир
4-6 игроков1.5-23-4 ГБ15-20 ГБобычный случай
7-10 игроков2-2.54-6 ГБ20-30 ГБзрелый мир, большие базы
С модами, 10+ модов2.5-36-8 ГБ30 ГБ и большезависит от модов

Это отправные точки. Небольшой группе, построившей огромную базу на выровненной горе, может понадобиться строка выше; большой группе, которая играет спокойно и разбредается по карте, - нет. Правильный способ подбора - начать на ступень ниже, чем вы опасаетесь, неделю наблюдать за графиками и переходить выше, только если что-то действительно упирается в лимит. Как их читать, объясняют статьи CPU или RAM для игровых серверов и когда пора менять тариф.

Для сравнения: линейка Valheim на RE:NODE идёт от Starter с 2 ГБ, 15 ГБ диска и 1 vCPU до Premium с 8 ГБ, 50 ГБ и 3 vCPU, всё на NVMe. Переход между тарифами меняет лимиты существующего сервера, поэтому мир остаётся на месте.

Рабочий пример

Возьмём группу из шести человек, которые четыре месяца играют в одном мире. У них одна большая главная база на выровненном холме, два форпоста, загон примерно с двадцатью волками и несколько модов, добавляющих предметы и рецепты, но не новых существ. Файл .db около 90 МБ.

На сервере с 1 vCPU и 3 ГБ вечера выглядят так: CPU держится около лимита, когда на главной базе четыре и более человека, строка World saved сообщает о паузе в пару секунд, а память держится чуть ниже 3 ГБ. Игроки сообщают о коротком подвисании каждые полчаса и рывках на базе, но не на форпостах.

Разбор: CPU упирается в лимит, только когда игроки в плотной области, то есть нагрузка - это база, а не число игроков. Пауза сохранения совпадает с подвисанием. Память близка к лимиту, но не на нём. Разумные изменения - второе ядро (оно даёт место потокам сохранения и сети и снимает нагрузку базы с лимита), сокращение загона волков до нескольких особей и увеличение памяти до 4 ГБ для запаса. Диск тут ни при чём: 90 МБ плюс четыре бэкапа - меньше полугигабайта. Диск побольше ничего бы не изменил; более быстрый лишь слегка сократил бы паузу сохранения на накопителе, который и так быстрый.

Игра с более чем десятью игроками и модом меняет картину: больше игроков значит больше синхронизируемых объектов и больше передаваемых данных, а игра на это не рассчитана. Во что это обходится, описано в статье лимит игроков и большие группы.

Как отличить предел железа от всего остального#

Перед апгрейдом убедитесь, что сервер действительно узкое место:

  1. Следите за графиком CPU во время лага. Если он стоит на лимите тарифа, серверу не хватает CPU. Если заметно ниже, добавление CPU не поможет.
  2. Проверьте, кто рядом с лагом. Если подтормаживание следует за одним игроком, скорее всего, его компьютер или соединение владеет зоной. Попросите его отойти или перезайти и посмотрите, пройдёт ли.
  3. Проверьте время сохранения. Если подвисание регулярное и совпадает с интервалом сохранения, смотрите время в строке World saved и накопитель.
  4. Проверьте память. Сервер у лимита памяти может вести себя плохо ещё до остановки. Смотрите график памяти вместе с CPU.
  5. Проверьте сеть. Рывки при низком CPU и стабильных сохранениях часто означают задержку или потерю пакетов. Остальное разобрано в статье производительность и лаги сервера Valheim.

Краткое руководство по формам графиков, которые вы увидите, - как читать график нагрузки сервера.

FAQ#

Сколько ядер CPU нужно серверу Valheim?

Одно полное ядро тянет небольшой чистый мир; два ядра - комфортная цифра для полной группы из десяти, в основном чтобы сохранения и сеть не конкурировали с главным циклом. Больше двух помогает только сильно модифицированным серверам.

Сервер Valheim больше нагружает CPU или RAM?

Ни то ни другое по меркам более новых игр на выживание. Он использует скромный объём памяти, растущий вместе с миром, а нагрузка на CPU - в основном один поток. Большая часть симуляции мира идёт на компьютерах игроков.

Улучшит ли диск NVMe работу Valheim?

Он ускоряет сохранения, запуски и бэкапы, что сокращает подвисание при сохранении мира. На частоту кадров между сохранениями он не влияет. Главная разница - при переходе с жёсткого диска на любой SSD.

Насколько большим становится файл мира Valheim?

Новый мир занимает несколько мегабайт. Мир, в который группа играет месяцами, обычно занимает от 20 до 150 МБ, в зависимости от исследования, строительства и изменения рельефа. Моды, добавляющие контент, могут увеличить его.

Почему мой сервер Valheim лагает, хотя загрузка CPU низкая?

Потому что значительная часть симуляции выполняется игроком, владеющим каждой зоной. Игрок со слабым ПК или плохим соединением заставляет лагать область вокруг себя для всех, независимо от того, насколько свободен сервер. Задержка и потеря пакетов тоже проявляются как лаги при низком CPU.