Если каждую локацию обслуживает один поток, то при скоплении игроков в одном месте на 100% загружается только одно ядро.
Почему Одну локацию (канал) обслуживает один поток → Следствие Когда игроки собираются в одном месте, загружено только это ядро, остальные свободны → На экране Лагает только эта локация, в других всё нормально
Основной ответственный Команда разработки · Разработка сервера · Совместно Команда инфраструктуры · Серверная инфраструктура
Команда разработки: задачи
Распределять игроков по каналам, распараллелить обработку внутри локации, ограничить число игроков.
Команда инфраструктуры: задачи
Добавить загрузку CPU по ядрам в мониторинг и алерты (в среднем по серверу перегрузка одного ядра теряется).
Цифры для ориентира
На 16-ядерном сервере одно ядро на 100% даёт общую загрузку CPU всего около 6%. Найти это можно, только глядя на загрузку по ядрам.
На графике
Растёт вслед за онлайном и нагрузкой · загрузка CPU по ядрам, CPU по потокам
Где смотреть
Посмотреть загрузку по ядрам через mpstat -P ALL 1 и CPU по потокам игрового процесса через pidstat -t 1, сравнить с числом игроков в зоне, которую обслуживает самый загруженный поток
Подтверждает
Общая загрузка CPU низкая, но один поток (одно ядро) держится около 100%, и в это время в зоне этого потока скопились игроки
Опровергает
Если равномерно загружены многие ядра, это общая перегрузка сервера. Если высок только %soft (обработка приёма) на одном ядре, дело в том, что прерывания NIC сосредоточены на одном ядре
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)
Подробнее
Другие локации в порядке, только если тики в каждой локации идут независимо. Если потоки локаций каждый тик ждут друг друга, чтобы вместе перейти к следующему тику, самая загруженная локация замедляет тики всего сервера.
Time Dilation – How’s That Going?CCP Games Time Dilation в EVE Online действует на весь узел, поэтому замедляются и далёкие звёздные системы на том же узле. Крупные сражения обрабатывают на усиленных узлах, где размещены только 4 системы
mpstat(1) — Linux manual pagesysstat Показывает загрузку по процессорам и общее среднее отдельно (-P ALL). %soft: доля времени на обработку программных прерываний