Решение проблемы «steal time» в гиперконвергентных средах
В рамках окна слияния Linux 7.4, которое откроется в октябре 2026 года, в ветку sched/core будет включен новый механизм — Steal Governor. Инициатива родилась в IBM и изначально создавалась для оптимизации производительности виртуальных машин на архитектуре POWER, но благодаря универсальной архитектуре драйвера принесет пользу и платформам x86_64.
Проблема, которую решает патч, известна как steal time — время, которое виртуальный процессор (vCPU) тратит впустую, ожидая доступ к физическому ядру из-за конкуренции ресурсов с другими VM на перегруженном сервере. Традиционный планировщик Linux не всегда эффективно учитывает этот фактор, что приводит к деградации производительности в сценариях over-commitment (избыточной выдачи ресурсов).
Как работает алгоритм
Steal Governor отслеживает время простоя vCPU и динамически корректирует маску предпочтительных CPU. Планировщик начинает избегать размещения задач на ядрах с высокой конкуренцией. Это критически важно для рабочих нагрузок, где прерывание vCPU влечет за собой не только потерю процессорного времени, но и:
- Прерывание держателей блокировок (lock-holder preemption);
- Потери в кэше и TLB (Translation Lookaside Buffer);
- Нарушение критических секций кода.
По словам разработчика Шриканта Хегде (Shrikanth Hegde), это особенно актуально для баз данных, смешивающих OLTP и OLAP нагрузки. Механизм может незначительно снизить производительность в задачах, требующих исключительно чистого вычислительного времени, но значительно ускорит I/O и транзакционные операции.
Результаты бенчмарков
Разработчики представили данные тестирования на серверах PowerPC, где включение Steal Governor показало существенный прирост производительности в ключевых сценариях:
| Бенчмарк | Результат | Примечание |
|---|---|---|
| Kernbench | +14% | Компиляция ядра Linux |
| Hackbench | +44% | Тестирование планировщика и очередей |
| Daytrader | 1.53x | Нагрузка на веб-сервер/базу данных |
| Phoronix Memcached | 1.2x | Кэширование в памяти |
Статус интеграции
Патчи версии v14, прошедшие многократные переработки и учет обратной связи сообщества, уже находятся в репозитории tip/tip.git. Ожидается, что они будут официально приняты в основную ветку ядра Linux 7.4 в ближайшее окно слияния.
Источник: Phoronix ↗
