Борьба с просадками FPS и лагами сущностей (Entity Lag) на сервере Rust

Техническое руководство по оптимизации серверной части Rust. Настройка лимитов построек, скорости гниения, физики коллайдеров Unity и очистки игрового мира.

20.05.2026 Русский

Борьба с просадками FPS и лагами сущностей (Entity Lag) на сервере Rust

Серверная часть Rust чрезвычайно требовательна к однопоточной производительности процессора и скорости дисковой подсистемы. В отличие от многих других сурвивал-игр, мир Rust полностью динамичен: игроки строят огромные многоэтажные базы из тысяч элементов, расставляют сотни турелей, ловушек, сундуков и активно используют транспорт. Все эти объекты в терминологии движка Unity называются сущностями (Entities).

Когда общее количество сущностей на карте (Entity Count) перешагивает критическую отметку (обычно это 150 000 — 200 000 объектов для стандартного тарифа хостинга), серверный фреймрейт начинает стремительно падать, игроки сталкиваются с задержками при открытии ящиков (Loot Lag), а сетевой отклик ухудшается. В этой статье мы разберем, как оптимизировать параметры физики, настроить скорость гниения и очистить карту от мусора ради стабильной работы сервера.

1. Ограничение общего числа сущностей и лимиты построек

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

  • Переменная server.maxentities: Этот параметр задает гипотетический лимит сущностей, который сервер пытается удерживать. Однако он не останавливает строительство игроков напрямую. Для жесткого контроля структуры баз рекомендуется использовать плагины вроде EntityLimit или встроенные лимиты мода Oxide/Carbon, которые физически запрещают одному клану ставить более, например, 20 турелей или 5000 блоков на один шкаф (Tool Cupboard).
  • Оптимизация стабильности (Building Stability): Просчет стабильности огромных зданий нагружает процессор при каждом взрыве стены. Если ваш сервер является сугубо тренировочным (Build/Creative/Battle), полностью отключите симуляцию стабильности командой:
    construction.stability false

2. Настройка гниения построек (Decay Scale) — главный дворник сервера

Если на сервере отключено или слишком замедлено гниение построек, карта за 2-3 дня покроется "кибитками" забросивших игру игроков. Дома без шкафов или ресурсов внутри должны исчезать максимально быстро, чтобы освобождать оперативную память и разгружать процессор.

Откройте конфигурационный файл server.cfg в панели хостинга и настройте следующие параметры:

# Множитель скорости гниения. 1.0 — стандарт (соломенная стена гниет за пару часов, МВК — за двое суток).
# Если хотите ускорить очистку карты, поднимите значение до 1.5 или 2.0.
decay.scale 1.0

# Время (в минутах) после уничтожения или опустошения шкафа, через которое база начинает интенсивно разрушаться
decay.delay_twigs 10
decay.delay_wood 30
decay.delay_stone 60
decay.delay_metal 120
decay.delay_toptier 240

Важно: Никогда не устанавливайте decay.scale 0 на публичных классических серверах с высоким онлайном. Без гниения количество сущностей достигнет лимита хостинга задолго до планового вайпа, что приведет к перманентным лагам.

3. Физика Unity: Оптимизация тиков коллайдеров

Каждый объект в Rust имеет физическую границу — коллайдер, который отвечает за регистрацию попаданий пуль, столкновения игроков и логику падения предметов. По умолчанию Unity обновляет физическую сетку слишком часто.

Для снижения нагрузки на CPU измените частоту обновления физического движка в файле запуска или через консоль:

  • physics.bouncethreshold 2.0 — увеличивает минимальную скорость, необходимую для расчета отскока объектов (снижает микрорасчеты для падающего лута).
  • physics.steps 30 — количество физических тиков в секунду. По умолчанию установлено значение 60. Снижение до 30 или 45 значительно разгружает основное ядро процессора, практически не влияя на регистрацию хитов (Hit Registration).

4. Контроль и ограничение кастомного транспорта

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

Команда / Переменная Оптимальное значение Эффект для производительности
minicopter.population 0 до 1 Плотность спавна миникоптеров на 1 кв. км. Рекомендуется снизить до минимума или выставить 0, если на сервере работает плагин на покупку транспорта в магазинах.
modularcar.population 1 или 2 Ограничивает количество собираемых модульных машин, гниющих на дорогах.
hotairballoon.population 0 Полностью отключает спавн воздушных шаров. Они имеют сложную физику ветра и сильно нагружают сервер при полете.

5. Принудительная очистка карты и утилизация мусора

Помимо автоматического гниения, администратор должен проводить регулярную профилактику игрового мира. Для этого используются встроенные инструменты сборки мусора (Garbage Collector) и команды очистки:

  1. Управление Garbage Collector (GC): По умолчанию Rust очищает неиспользуемую память траншейно, что вызывает кратковременные фризы у всех игроков раз в несколько минут. Настройте более частую, но "легкую" очистку, добавив в параметры запуска сервера:
    -gc.incremental true
    -gc.buffer 2048 (выделяет 2 ГБ буфера под сборщик мусора, предотвращая резкие скачки).
  2. Команда очистки бесхозного дропа: Если игроки взорвали базу и оставили тонны лута валяться на полу, соберите его принудительно командой в консоль:
    global.collapsestoreboxes или удалите все свободные предметы на земле через: del assets/prefabs/misc/item drop/item_drop.prefab

Гайд по экспресс-мониторингу: Чтобы в реальном времени видеть, что именно нагружает ваш сервер, введите в консоль команду serverinfo. Обратите внимание на строки EntCount (общее число объектов) и Uptime. Если EntCount растет аномально быстро (например, на 50 000 в день при низком онлайне), проверьте сервер на наличие читеров, использующих краш-скрипты для массового спавна предметов.

Похожие статьи

Оптимизация сетевых настроек и рейтов (Network Tweaking) в Rust

Техническое руководство по настройке сетевых параметров, тикрейта и очередей пакетов на серверах Rust для полного устранения резиновых возвратов (rubberbanding) и сетевых лагов.

Читать далее

Искусство вайпа: Полный гид по автоматизации сервера Rust

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

Читать далее

Руководство по установке плагинов Oxide

Узнайте, как расширить возможности вашего сервера Rust, используя автоматическую и ручную установку плагинов Oxide для улучшения геймплея.

Читать далее