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

Анатомия игровых лагов › L7 ОС сервера (ядро)

CPU steal (виртуальная машина) CPU steal time

ID причины so-steal · Основной ответственный Команда инфраструктуры · Серверная инфраструктура · Совместно Внешние стороны · Внешние стороны

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

Пока физический сервер (гипервизор) временно отдаёт процессорное время виртуальной машины другим виртуальным машинам (CPU steal), игровой сервер стоит.

Почему Другие виртуальные машины на том же хосте активно используют CPU → Следствие Виртуальная машина игрового сервера то и дело не получает CPU на время от единиц до десятков ms → На экране Необъяснимые всплески времени тика: микрофризы, фризы

Симптомы
Микрофризы, Фриз
Факторы
Остановка
У кого
Весь сервер
Когда
Изредка, случайно
Ответственные
Основной ответственный Команда инфраструктуры · Серверная инфраструктура · Совместно Внешние стороны · Внешние стороны
Команда инфраструктуры: задачи
Мониторить steal (st в top и vmstat), использовать выделенные ядра или хосты, избегать burst-инстансов, которые замедляются, когда кончаются CPU-кредиты. Инстанс с постоянно высоким steal остановить и запустить заново, чтобы он переехал на другой хост.
Внешние стороны: задачи
Сообщить облачному провайдеру о хосте с постоянно высоким steal.
На графике
Случайные всплески · %steal, время тика сервера
Где смотреть
Наложить %steal из mpstat -P ALL 1 на время тика сервера на одной временной оси
Подтверждает
В моменты всплесков времени тика скачет и %steal, а после остановки, запуска и переезда на другой хост он снижается
Опровергает
Если %steal близок к 0, а время тика скачет, причина внутри игрового сервера («Полная пауза GC на сервере», «Конкуренция за блокировки»). Если сервер в контейнере, это «Троттлинг CPU в контейнере (квота CFS)»
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)

Источники

  1. proc_stat(5) — Linux manual page Linux man-pages
    steal: время, отнятое в виртуализированной среде на выполнение других операционных систем
  2. Standard mode for burstable performance instances AWS
    Burst-инстансы тратят кредиты, чтобы работать выше базовой производительности, а когда кредиты заканчиваются, загрузка CPU снижается до базового уровня
  3. How EC2 instance stop and start works AWS
    После остановки и запуска инстанс в большинстве случаев переезжает на новый хост
  4. mpstat(1) — Linux manual page sysstat
    %steal: доля времени, в течение которого этот виртуальный CPU вынужденно ждал, пока гипервизор выполнял другой виртуальный CPU

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

Тот же слой: L7 ОС сервера (ядро)

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

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