← Blog

От чего зависит стабильность сервера DayZ: RAM, CPU и моды

Par Benjamin D. · PDG

· Mis à jour le 29 августа 2026 г. · Lecture 8 min

Содержание

Стабильный сервер DayZ держится не на количестве ядер в характеристиках, а на трёх вещах: частоте одного ядра, запасе оперативной памяти под моды и скорости диска, на который постоянно пишется персистентность. Ниже — разбор того, что реально нагружает симуляцию Чернаруса, сколько RAM закладывать под 40 и 60 слотов и как читать логи, когда мир начинает «плыть».



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

Движок Enfusion в серверной части почти вся тяжёлая логика выполняется в одном основном потоке. Симуляция инфицированных, поиск пути, обработка предметов, проверка коллизий и тики экономики (Central Economy) не размазываются равномерно по 16 ядрам. Поэтому машина с восемью ядрами на 2.2 ГГц покажет худшую плавность, чем четыре ядра Ryzen на 4.5+ ГГц. Именно частота одного ядра определяет server FPS — метрику, ниже которой начинается десинхронизация: пули не регистрируются, зомби «телепортируются», лут появляется с задержкой.

Второй фактор — Central Economy. CE постоянно пересчитывает номиналы предметов по types.xml, спавнит и деспавнит объекты, ведёт учёт lifetime каждого лежащего ботинка на карте. Чем больше кастомных типов добавляют моды (трейдеры, кастомная одежда, транспорт), тем длиннее очередь на обработку и тем выше пиковая нагрузка при рестарте.

Третий — персистентность. Базы, палатки, тайники, автомобили, состояние дверей и замков пишутся в каталог storage_1. На карте с активным строительством этот каталог легко разрастается до сотен мегабайт мелких файлов, и каждый цикл сохранения превращается в шквал случайных операций записи.

Если ты подбираешь площадку под свой проект и хочешь сразу закрытые вопросы по железу, панели и защите, посмотри хостинг DayZ у нас — конфигурации на Ryzen с NVMe и панелью Pterodactyl.



Сколько RAM нужно серверу DayZ под игроков и моды

Ванильный Чернарус стартует примерно с 2,5–3,5 ГБ и растёт по мере заполнения мира объектами и подключения игроков. Каждый активный игрок в среднем добавляет 40–80 МБ (стриминг локаций вокруг него), а мод-карты вроде DeerIsle, Namalsk или Banov сами по себе прибавляют несколько гигабайт ещё до входа первого выжившего.

СборкаСлотовRAM (рабочий запас)Ядра / частота
Ванильный Chernarus / Livonia20–304 ГБ2 ядра, 4.0+ ГГц
Ванильный, полный сервер40–606 ГБ3–4 ядра, 4.0+ ГГц
Лёгкая сборка (CF, Code Lock, Trader, BuilderItems)40–508 ГБ4 ядра, 4.2+ ГГц
DayZ-Expansion (Core + Vehicles + Market + AI)50–6012 ГБ4 ядра, 4.4+ ГГц
Кастомная карта + 40–60 модов + плотное строительство60+16 ГБ и выше4–6 ядер, 4.4+ ГГц

Почему запас важнее среднего значения

DayZ склонен к постепенному росту потребления памяти в течение аптайма. Через 4–6 часов непрерывной работы модифицированная сборка спокойно набирает +1,5–2 ГБ сверх стартового значения. Когда процесс упирается в потолок, в .RPT появляется характерная строка:

grep -iE "bad alloc|Out of memory|cannot allocate" profiles/*.RPT

После этого сервер либо падает, либо теряет часть персистентности. Отсюда практическое правило: закладывай на 30–40% больше памяти, чем показывает мониторинг на полном сервере, и настраивай автоматические рестарты каждые 3–4 часа. Рестарт по расписанию заодно чистит очередь CE и возвращает server FPS к нормальным значениям.

Как измерить реальное потребление

Включи логирование в serverDZ.cfg — без него ты работаешь вслепую:

logAverageFps = 1;
logMemory = 1;
logPlayers = 1;
timeStampFormat = "Short";
logFile = "server_console.log";

Затем смотри динамику прямо в логах профиля:

grep -i "Average server FPS" profiles/*.RPT | tail -n 30

Ориентиры простые: 25–30+ FPS — комфортная игра; 15–20 — заметная задержка регистрации попаданий; ниже 10 — мир фактически неиграбелен, и никакие настройки клиента это не исправят.



NVMe, сеть и защита периметра для персистентного мира

Диск: почему SATA-SSD и HDD ломают персистентность

Цикл сохранения в DayZ — это тысячи мелких файлов в storage_1, а не один большой дамп. На обычном накопителе такая операция даёт всплеск latency, который основной поток симуляции ощущает как микрофриз: игроки видят «резину» ровно в момент автосейва. NVMe с высоким IOPS на случайной записи убирает этот эффект и заметно сокращает время старта карты после рестарта, особенно на сборках с большим количеством модов, которые движок читает и распаковывает при загрузке.

Резервные копии персистентности делай до перезапуска, а не после аварии:

tar -czf /backup/dayz-storage-$(date +%F-%H%M).tar.gz \
  mpmissions/dayzOffline.chernarusplus/storage_1

В панели Pterodactyl тот же результат достигается автоматическими снимками по расписанию — восстановление занимает пару минут вместо ручного восстановления баз игроков.

Сеть и UDP-порты

DayZ работает по UDP: игровой порт (обычно 2302), диапазон служебных портов и Steam query. Слабое место — именно query-порт: его флуд выбивает сервер из списка, даже если симуляция ещё жива. Волюметрическая фильтрация делается на уровне сети, до того как трафик доходит до игрового процесса; на нашей инфраструктуре анти-DDoS включён на всех машинах по умолчанию, отдельной настройки со стороны администратора не требуется.

Что остаётся на твоей стороне

  • Длинный passwordAdmin и отдельный пароль на BattlEye RCON, никогда не совпадающие между собой.
  • RCON-порт закрыт для всех, кроме доверенных IP администраторов.
  • verifySignatures = 2 и forceSameBuild = 1 — базовая защита от подмены модов и клиентов другой версии.
  • Регулярные бэкапы storage_1 + mpmissions и хранение хотя бы одной копии вне игровой машины.
  • Ограничение прав сабюзеров в панели: модератору не нужен доступ к файловому менеджеру целиком.


Моды и конфигурация: где теряется производительность

Порядок загрузки и разделение -mod / -serverMod

Классическая ошибка — сваливать всё в -mod. Административные инструменты, которые не нужны клиенту, должны идти в -serverMod, иначе игроки скачивают лишние сотни мегабайт, а сервер держит их в памяти без пользы. Фреймворки (Community Framework) всегда идут первыми:

./DayZServer -config=serverDZ.cfg -port=2302 -profiles=profiles \
  -BEpath=battleye -cpuCount=4 -dologs -adminlog -netlog -freezecheck \
  -mod=@CF;@DayZ-Expansion-Core;@DayZ-Expansion-Vehicles;@CodeLock \
  -serverMod=@VPPAdminTools

Параметр -cpuCount имеет смысл ставить равным числу доступных потоков, но помни: он не превращает однопоточную симуляцию в многопоточную, он лишь распределяет вспомогательные задачи. -freezecheck помогает поймать зависший поток и получить дамп вместо тихого залипания.

Обновление сборки через SteamCMD

steamcmd +force_install_dir /home/dayz/server +login anonymous \
  +app_update 223350 validate +quit

steamcmd +login <аккаунт> +workshop_download_item 221100 1559212036 +quit

После каждого патча DayZ обязательно обновляй и моды, и serverDZ.cfg: несовпадение версий модов между сервером и Workshop — самая частая причина того, что игроки видят «Bad version» и не могут подключиться. Актуальные ключи конфигурации всегда сверяй с официальной документацией Bohemia Interactive: Source.

Central Economy: тонкая настройка вместо «побольше лута»

Раздутые значения nominal и min в types.xml — прямой путь к падению server FPS. Каждый заспавненный предмет живёт в памяти и участвует в цикле CE. Несколько практичных приёмов:

  • Сокращай lifetime у мусорного лута (одежда низкого качества, пустые бутылки) — объекты будут исчезать быстрее и не копиться сутками.
  • Не дублируй кастомные типы модов, если аналог уже есть в ванили: два похожих предмета с высоким nominal удваивают нагрузку.
  • Транспорт из модов — самое дорогое, что есть в симуляции. 60 машин на карте ощущаются заметно тяжелее, чем 20.
  • Строительные объекты игроков не деспавнятся автоматически: следи за размером storage_1 и включай storageAutoFix = 1, чтобы повреждённые файлы не роняли загрузку мира.

Базовый скелет serverDZ.cfg

hostname = "PVE | Trader | Base Building";
maxPlayers = 60;
verifySignatures = 2;
forceSameBuild = 1;
disableVoN = 0;
vonCodecQuality = 20;
serverTimeAcceleration = 12;
serverNightTimeAcceleration = 2.0;
serverTimePersistent = 0;
guaranteedUpdates = 1;
loginQueueConcurrentPlayers = 5;
loginQueueMaxPlayers = 500;
instanceId = 1;
storageAutoFix = 1;
storeHouseStateDisabled = false;
respawnTime = 5;
class Missions {
    class DayZ {
        template = "dayzOffline.chernarusplus";
    };
};

Параметр loginQueueConcurrentPlayers недооценён: он ограничивает количество одновременно загружающихся игроков. После рестарта, когда в очереди стоит 40 человек, значение 5 сглаживает пиковую нагрузку на диск и CPU и предотвращает падение server FPS в первые минуты.



Диагностика: что смотреть, когда мир начинает лагать

Порядок действий

  1. Server FPS в .RPT. Если он падает только на 50+ онлайне — упор в частоту ядра. Если проседает даже на 10 игроках — ищи мод-виновника.
  2. Память. Растёт линейно и не откатывается после рестарта? Значит утечка в конкретном моде или слишком агрессивный CE.
  3. Диск. Микрофризы ровно каждые N минут = цикл сохранения персистентности.
  4. Сеть. Игроки вылетают пачками при нормальном server FPS — смотри сторону сети и query-порт, а не CPU.

Метод исключения для модов

Отключай моды группами по 3–4 и наблюдай 30–40 минут при реальном онлайне. Тестировать на пустом сервере бессмысленно: большинство проблем всплывает только под нагрузкой скриптов и AI. Держи рабочую и тестовую конфигурации раздельно, а логи админ-действий (-adminlog) сохраняй — они помогают отличить лаг движка от дюпа или читерского скрипта.

Если ты ведёшь несколько проектов на разных играх, полезно держать одинаковый подход к мониторингу и бэкапам — принципы у Сервер Arma Reforger и других тяжёлых симуляций те же. Остальные поддерживаемые проекты собраны на странице Все наши игровые серверы, а разборы конфигураций регулярно выходят в Блог Fly-Serv.



Итог

Плавность мира DayZ определяют частота одного ядра, честный запас оперативной памяти под выбранную сборку модов и NVMe, который без задержек переваривает цикл персистентности. Включи логирование server FPS и памяти, настрой рестарты каждые 3–4 часа, держи Central Economy в разумных пределах и делай регулярные копии storage. Этого набора хватает, чтобы 60 выживших играли без десинхронизации.



FAQ

Сколько оперативной памяти нужно серверу DayZ на 60 слотов с модами Expansion?

Закладывай 12–16 ГБ. Сам Expansion (Core, Vehicles, Market, AI) добавляет несколько гигабайт к базовым 3–4 ГБ ванильного Чернаруса, плюс 40–80 МБ на каждого активного игрока и рост потребления в течение аптайма. Если мониторинг на полном сервере показывает 10 ГБ, рабочий запас должен быть минимум 13–14 ГБ, иначе через несколько часов появится ошибка bad allocation.

Почему server FPS падает ниже 10 при нормальной нагрузке на CPU?

Потому что симуляция DayZ упирается в одно ядро, а общая загрузка процессора при этом выглядит низкой. Проверь частоту ядра, затем ищи причину в Central Economy: раздутые nominal в types.xml, избыток транспорта и кастомных типов от модов удлиняют цикл обработки. Отключай моды группами по 3–4 при реальном онлайне и смотри строки Average server FPS в .RPT.

Как не потерять базы игроков при сбое?

Делай копию каталога storage_1 и mpmissions перед каждым плановым рестартом и после обновления модов, храни хотя бы одну копию вне игровой машины. Включи storageAutoFix = 1, чтобы повреждённые файлы не блокировали загрузку мира. В панели Pterodactyl достаточно настроить автоматические снимки по расписанию — восстановление занимает несколько минут.