Если предметы на земле, призванные существа и отработавшие таймеры, которые должны исчезать, не удаляются и копятся, то чем дольше сервер работает, тем больше работы в каждом тике.
Почему Предметы на земле, призванные существа, истёкшие таймеры и данные пустых групп вовремя не удаляются → Следствие Списки, которые обходятся каждый тик, с каждым днём становятся длиннее → На экране Сразу после техработ всё нормально, а через несколько дней именно этот сервер или локация постепенно начинает тормозить
Основной ответственный Команда разработки · Разработка сервера
Команда разработки: задачи
Записывать число объектов по локациям в метрики и следить за трендом, задать для объектов время жизни и предельное количество, регулярно проводить очистку.
Цифры для ориентира
Если сервер каждый тик обходит все объекты, то при удвоении числа объектов эта часть времени тика тоже удваивается.
На графике
Пила: плавный рост и резкий сброс · число объектов по зонам, время тика сервера
Где смотреть
Смотреть число объектов (предметы на земле, призванные существа, таймеры) по зонам и серверам и время тика за период дольше цикла техработ (несколько недель)
Подтверждает
Число объектов и время тика начинают с низкого уровня после техработ, растут день ото дня и резко падают при техработах или перезапуске, и так по кругу, а памяти всё это время хватает
Опровергает
Если время тика не меняется, а растёт только память, дело в утечке памяти
Чем проверить
Нужны логи и метрики игрового сервера или клиента
Подробнее
Как и утечка памяти, проблема усиливается со временем работы, но отличается тем, что памяти хватает, а растёт только время тика. Если график числа объектов имеет форму пилы с периодом техработ, это тот самый случай.
Источники
Actor Ticking in Unreal EngineEpic Games Если отдельно не задать интервал, акторы и компоненты выполняют тик раз в кадр, а когда он не нужен, тик можно отключить
AActor::SetLifeSpanEpic Games Если задать актору время жизни, по его истечении актор уничтожается автоматически