Перейти к содержимому

Оптимизация сервера Rust: от чего лагает и что помогает

Коротко: введите serverinfo в консоли сервера, чтобы увидеть Framerate и EntityCount сервера. Сервер Rust тормозит, когда ему больше нужно считать: больше построек и предметов в мире, больше спавнов на большой карте, NPC и плагины. Настройки ниже управляют каждым из этих пунктов. Настройки тикрейта оставьте по умолчанию.

КомандаЧто показывает
serverinfoFramerate, EntityCount (всё в мире), Players, Memory, NetworkIn и NetworkOut, Uptime.
server.fpsТолько частота кадров сервера.

Вводите их в консоли сервера, через RCON или в консоли F1 как админ. В Crucible Local Server плитка Частота кадров на простом виде показывает то же число, пока сервер В сети.

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

fps.limit это максимум кадров в секунду, на которых будет работать сервер (Rust сообщает 240). Если его снизить, на том же ПК освобождается процессор для другого, например для второго сервера. Для сервера, который и так работает ниже лимита, он ничего не даёт.

НастройкаПо умолчаниюЧто делает
server.tickrate10Сколько раз в секунду сервер обрабатывает RCON, Rust+ и проверки соединения. Игру плавнее он не делает.
player.tickrate_sv16Сколько раз в секунду сервер обновляет каждого игрока. Rust разрешает от 16 до 128, и каждый шаг вверх это больше работы для каждого игрока на сервере.

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

Настройка или командаПо умолчаниюЧто делает
server.itemdespawn300Базовое число секунд, сколько выброшенный предмет лежит на земле, пока не исчезнет. Некоторые предметы лежат дольше.
server.corpsedespawn300Сколько секунд остаётся труп.
entity.countby <steamid>Считает всё, что поставил один игрок.
entity.deleteby <steamid>Уничтожает всё, что поставил один игрок. Отмены нет.

Decay разрушает постройки, за которыми никто не следит, и именно он вычищает с карты брошенные базы. С decay.scale 0 ничего не разрушается, так что каждая база стоит до вайпа, а число сущностей только растёт. На длинном вайпе decay лучше оставить включённым; настройки на странице отключение decay.

Rust наполняет карту рудными узлами, растениями, подбираемыми предметами и животными по площади: у каждого типа спавна есть плотность, и Rust стремится к ней на всей подходящей земле. На большой карте всего больше, и серверу больше считать. Rust ограничивает некоторые типы спавна площадью карты 4000 m. Как выбрать размер: размеры карт Rust.

НастройкаПо умолчаниюЧто делает
spawn.max_density1Масштабирует, сколько каждого типа спавна держит карта. 0.5 это половина.
spawn.min_density0.5Типы спавна, зависящие от числа игроков, на пустом сервере начинают с этого значения и поднимаются до spawn.max_density по мере заполнения.
spawn.tick_populations60Секунды между раундами спавна. Чем больше число, тем медленнее карта пополняется.
НастройкаЧто делает
ai.npc_enable falseУчёные не появляются на монументах и свалках, а Rust не строит навмеши монументов, так что сервер стартует быстрее. Животные по-прежнему появляются.
aimanager.nav_disable trueRust вообще не строит навмеш, так что сервер стартует намного быстрее, но NPC и животные не могут двигаться. Только для сервера для стройки или тестов.

Задайте обе в server.cfg или в строке запуска, чтобы они действовали с момента старта сервера. См. пример Rust server.cfg.

Каждый плагин выполняет на сервере собственный код, и один медленный плагин может просадить частоту кадров у всех. o.plugins на Oxide или c.plugins на Carbon показывает, что загружено. Чтобы найти медленный, убирайте плагины из папки oxide/plugins или carbon/plugins по одному, перезапускайте и следите за частотой кадров. В Crucible Local Server плагинами управляют на вкладке Моды; см. моды и плагины.

server.saveinterval (600) это как часто сохраняется мир, в секундах, и каждое сохранение записывает все сущности мира. Чем больше сущностей, тем дольше сохранение, так что не ставьте слишком маленькое значение.

Плановый перезапуск даёт долго работающему серверу чистый старт. Crucible Local Server умеет перезапускаться по ежедневному расписанию и ставить обновления Rust, пока сервер выключен; см. автоматический перезапуск сервера.

Настройки Производительность на вкладке Конфиг:

  • Пропустить навмеш ИИ (быстрее запуск) это aimanager.nav_disable из таблицы выше: намного быстрее старт, а NPC и животные не двигаются.
  • Высокий приоритет даёт серверу больше процессора, когда работают другие приложения.
  • Ядра ЦП (дополнительно) привязывает сервер к перечисленным вами ядрам, например 0-7. Оставьте пустым, чтобы использовать все ядра.

Каждый дополнительный сервер, запущенный одновременно, стоит реальной памяти и процессора, поэтому Разрешить одновременный запуск нескольких серверов по умолчанию выключено. См. настройки сервера.