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

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

Падение сервера Server process crash

ID причины sp-crash · Основной ответственный Команда разработки · Разработка сервера · Совместно Команда инфраструктуры · Серверная инфраструктура

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

Если процесс сервера падает из-за необработанной ошибки, у всех, кто был на этом сервере, одновременно обрывается соединение.

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

Симптомы
Дисконнект, Съеденные действия / роллбэк
Факторы
Остановка
У кого
Одна локация или канал, Весь сервер
Когда
Изредка, случайно, При определённом действии
Ответственные
Основной ответственный Команда разработки · Разработка сервера · Совместно Команда инфраструктуры · Серверная инфраструктура
Команда разработки: задачи
Разбирать краш-дампы и исправлять причины, сохранять чаще.
Команда инфраструктуры: задачи
Настроить автоматический перезапуск процесса, сбор и хранение краш-дампов, мгновенный алерт при падении сервера.
На графике
Массовый обрыв соединений · число подключений, число перезапусков процесса
Где смотреть
Смотреть записи о core dump в coredumpctl list (время, PID, сигнал завершения) и записи менеджера сервисов (systemd) об аварийных завершениях и перезапусках. На серверах Windows смотреть дампы, сохранённые WER
Подтверждает
В момент, когда число подключений резко падает почти до 0, есть аварийное завершение процесса игрового сервера и core dump
Опровергает
Если процесс жив, а соединения оборвались, дело в сетевом оборудовании или таймауте простоя. Если есть запись о перезапуске watchdog после долгого зависания, дело в бесконечном цикле или дедлоке
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)

Источники

  1. Collecting User-Mode Dumps Microsoft
    Через отчёты об ошибках Windows (WER) можно настроить локальный сбор полных дампов и мини-дампов при падении программ пользовательского режима
  2. systemd.service(5) — Linux manual page systemd
    Restart=on-failure автоматически перезапускает сервис при аварийном завершении, завершении по сигналу (в том числе с core dump) и срабатывании watchdog. Рекомендуется для долгоживущих сервисов
  3. coredumpctl(1) — Linux manual page systemd
    list показывает core dump, сохранённые systemd-coredump: время падения, PID и сигнал, вызвавший падение

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

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

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

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