Performance

Что такое CPU steal time?

Также известно как: st time
Определение

Steal time is the proportion of time a virtual CPU was ready to run but the hypervisor gave the physical core to another guest. It appears as the "st" column in top and vmstat. Sustained values above 2–3% indicate contention and show up as tail-latency spikes rather than as uniformly slow throughput.

Почему CPU steal time важен

Она отображается в столбце «st» в top и vmstat. Устойчивые значения выше 2–3% указывают на конкуренцию и проявляются как всплески задержек в хвосте, а не как равномерно медленная пропускная способность.

CPU steal time на практике

Когда вы запускаете сервер, следите за столбцом st в top и vmstat. Если он постоянно выше 2–3%, ваш CPU разделяется больше, чем ожидает ваша рабочая нагрузка. Стоимость — не равномерное замедление, а всплески задержки хвоста, которые разрушают чувствительные ко времени задачи. Вы можете изменить размер своего инстанса или перейти на менее загруженный хост. Если вы игнорируете это, вы будете гоняться за призраками в собственной настройке, в то время как реальное узкое место находится на стороне гипервизора.

Что люди часто понимают неправильно в отношении CPU steal time

Люди часто ошибочно принимают время кражи CPU за признак того, что их собственные процессы потребляют слишком много CPU. Это не так. Время кражи означает, что ваш виртуальный CPU был готов, но гипервизор отдал физическое ядро другому гостю. Исправление: смотрите на столбец st, а не на столбцы user или system. Высокое значение st означает, что проблема вне вашего инстанса, а не внутри.

CPU steal time — частые вопросы

Почему время кражи CPU так велико на моём VPS?

Высокое время кражи обычно означает, что ваш гипервизор переподписан. Другие гости на том же физическом хосте конкурируют за ядра. Это не вызвано только вашей рабочей нагрузкой. Если st остаётся выше 2–3%, рассмотрите переход к провайдеру с меньшей конкуренцией или выделенным ядром.

Могу ли я уменьшить время кражи CPU самостоятельно?

Не напрямую из вашего инстанса. Steal time накладывается гипервизором. Вы можете снизить зависимость от CPU, оптимизируя код, но фактический steal снижается только при меньшей конкуренции на хосте. Иногда помогает миграция на другой физический хост.

Больше из раздела «performance»

RTT
RTT — это время прохождения пакета до пункта назначения и возврата ответа, измеряемое в миллисекундах.
Джиттер
Джиттер — это вариация задержки пакетов во времени, в отличие от средней задержки.
TTFB
TTFB измеряет время от отправки запроса до получения первого байта ответа.