Что такое Steal Time в Linux?

«Что такое Steal Time в Linux?» — вопрос из категории Linux, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Steal Time (st) — это метрика в Linux, показывающая процент времени, когда виртуальная машина (ВМ) была готова к выполнению задач, но физический CPU гипервизора был занят обслуживанием других виртуальных машин. Это ключевой индикатор в облачных (AWS EC2, GCP Compute Engine) и виртуализированных средах.

Как посмотреть:

# В утилите top (строка %Cpu(s))
top - 11:22:33 up 1 day,  2:34,  1 user,  load average: 0.15, 0.10, 0.05
Tasks: 120 total,   1 running,  70 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.3 us,  1.2 sy,  0.0 ni, 96.0 id,  0.1 wa,  0.0 hi,  0.0 si,  0.4 st
                                                                    ^^^
# Или с помощью mpstat
mpstat 1 5
Linux 5.4.0 (...)   04/11/25     _x86_64_    (2 CPU)
11:22:34  CPU   %usr  %nice  %sys %iowait  %irq  %soft %steal %guest %gnice  %idle
11:22:35  all   2.12   0.00  0.75    0.12  0.00   0.12   0.25   0.00   0.00  96.63
                                                                  ^^^

Интерпретация и действия в DevOps:

  • Низкий steal (<2-5%): Нормальная ситуация, гипервизор не перегружен.
  • Высокий steal (>10%): Серьёзная проблема. Ваша ВМ недополучает вычислительные ресурсы.
    • Причины: Соседние ВМ на том же физическом хосте активно потребляют CPU; ваш инстанс имеет слишком мало vCPU для нагрузки; проблемы с планировщиком гипервизора.
    • Последствия: Увеличение latency приложений, снижение throughput, рост времени обработки запросов.
    • Что делать:
      1. Мониторинг: Настроить алерты в Prometheus на node_cpu_seconds_total{mode="steal"}.
      2. Вертикальное масштабирование: Увеличить количество vCPU у инстанса (если позволяет тариф).
      3. Горизонтальное масштабирование: Добавить больше инстансов и распределить нагрузку.
      4. Миграция: Запросить миграцию инстанса на другой физический хост у провайдера или использовать группы размещения.
      5. Выделенные хосты: Для критичных нагрузок рассмотреть выделенные инстансы (AWS Dedicated Hosts и аналоги).

Steal Time — прямой сигнал о необходимости вмешательства в инфраструктуру.