한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Анатомия игровых лагов › L9 Процесс игрового сервера

Накопление объектов (неубранные предметы и призванные существа) Entity / timer buildup over uptime

ID причины sp-entity-buildup · Основной ответственный Команда разработки · Разработка сервера

Открыть карточку в основной версии с иллюстрациями и экспериментами →

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

Почему Предметы на земле, призванные существа, истёкшие таймеры и данные пустых групп вовремя не удаляются → Следствие Списки, которые обходятся каждый тик, с каждым днём становятся длиннее → На экране Сразу после техработ всё нормально, а через несколько дней именно этот сервер или локация постепенно начинает тормозить

Симптомы
Слоумо, Микрофризы, Задержка ввода
Факторы
Остановка
У кого
Весь сервер, Одна локация или канал
Когда
Чем дольше без перезапуска
Ответственные
Основной ответственный Команда разработки · Разработка сервера
Команда разработки: задачи
Записывать число объектов по локациям в метрики и следить за трендом, задать для объектов время жизни и предельное количество, регулярно проводить очистку.
Цифры для ориентира
Если сервер каждый тик обходит все объекты, то при удвоении числа объектов эта часть времени тика тоже удваивается.
На графике
Пила: плавный рост и резкий сброс · число объектов по зонам, время тика сервера
Где смотреть
Смотреть число объектов (предметы на земле, призванные существа, таймеры) по зонам и серверам и время тика за период дольше цикла техработ (несколько недель)
Подтверждает
Число объектов и время тика начинают с низкого уровня после техработ, растут день ото дня и резко падают при техработах или перезапуске, и так по кругу, а памяти всё это время хватает
Опровергает
Если время тика не меняется, а растёт только память, дело в утечке памяти
Чем проверить
Нужны логи и метрики игрового сервера или клиента
Подробнее
Как и утечка памяти, проблема усиливается со временем работы, но отличается тем, что памяти хватает, а растёт только время тика. Если график числа объектов имеет форму пилы с периодом техработ, это тот самый случай.

Источники

  1. Actor Ticking in Unreal Engine Epic Games
    Если отдельно не задать интервал, акторы и компоненты выполняют тик раз в кадр, а когда он не нужен, тик можно отключить
  2. AActor::SetLifeSpan Epic Games
    Если задать актору время жизни, по его истечении актор уничтожается автоматически

Смотрите также

Тот же слой: L9 Процесс игрового сервера

Причины с тем же симптомом (Слоумо) на других слоях

Карточка в основной версии с иллюстрациями и экспериментами