Лаги и рывки на сервере Project Zomboid: диагностика
При рывках и телепортации игроков или зомби сначала сравните наблюдения разных участников, нагрузку сервера и сеть. Синхронные рывки у всех могут указывать на сервер; проблема одного игрока — на его соединение или компьютер, но это лишь признаки, а не точный диагноз. Сохраните резервную копию мира и настроек перед экспериментами с модами.
Сопоставьте симптомы
| Симптом | Что проверить |
|---|---|
| У всех одновременно | Логи, CPU, память, сеть сервера |
| Зомби замирают и перемещаются | Нагрузку и сетевую синхронизацию |
| Хуже при росте игроков или удалении друг от друга | CPU, память и загрузку областей |
| Только один игрок | Его сеть и компьютер, не исключая сервер |
| Только во время быстрой езды | Загрузку карты и диски сервера и игрока |
| Периодические всплески | Время сохранений и производительность диска |
Память и процессор
Проверьте лимит Java -Xmx и доступную память, оставив ресурсы операционной системе: чрезмерное значение может привести к остановке процесса. В статье приведены ориентиры 6 ГБ для vanilla до шести игроков, 8 ГБ для нескольких модов и примерно 12 игроков, 12 ГБ для крупных наборов модов и 12–32 игроков, а также 75–80% памяти, доступной для сервера, для Java. Это ориентиры, а не подтверждённые требования или гарантия: измеряйте нагрузку и учитывайте другие процессы. Указанные места настройки: StartServer64.bat в Windows и ProjectZomboid64.json в Linux; проверьте конфигурацию своей установки. Обновление SteamCMD может перезаписать файлы.
Мир и моды
Сравните нагрузку, когда игроки находятся рядом и в разных областях, и проверьте популяцию, частоту возрождения, большое количество трупов и загрузку карты при быстрой езде. В статье упомянуты Zombies = 4 как Normal, ZombieConfig.RespawnHours и HoursForCorpseRemoval; проверьте значения и действие в вашей версии. Для проверки модов после резервирования отключайте недавно добавленные по одному на тестовой копии, перезапускайте и сравнивайте результат; не предполагайте, что удаление модов безопасно для существующего мира. Проверьте обновления модов и карты и их совместимость с версией сервера. В статье Insane обозначен значением 1; изменения популяции главным образом проявляются в областях, загруженных после изменения. При рывках во время езды попробуйте снизить скорость и проверьте диск.
Сохранение, версия и сеть
Предупредите игроков перед плановым сохранением и остановкой, затем проверьте состояние мира после запуска. В статье предлагается ежедневный перезапуск и SaveWorldEveryMinutes=15; периодичность выбирайте по результатам наблюдений, это не универсальное исправление. Проверьте диск и совпадение обновлённых версий клиента и сервера.
Для домашнего сервера проверьте исходящий канал и стабильность подключения; проводная сеть может помочь исключить проблемы Wi-Fi. Сверьте UDP-порты с фактической конфигурацией сервера: в статье приведены 16261 и 16262, но их актуальность зависит от версии и режима. Для одного игрока проверьте задержку, фоновые загрузки и файлы игры в Steam. Если его отключает лимит задержки, проверьте PingLimit, прежде чем менять его.
Когда искать предел оборудования
Если при обычной нагрузке сохраняются проблемы, изучите журналы и показатели CPU, памяти и диска: может потребоваться более производительный сервер. PauseEmpty останавливает время при отсутствии игроков и не устраняет лаг во время игры. Утверждение, что Build 42 требует больше ресурсов, чем Build 41, зависит от конфигурации и нуждается в измерениях.