Переключение контекста и высокая загрузка CPU
Переключение контекста происходит, когда CPU сохраняет состояние одной задачи и загружает состояние другой. Некоторое количество переключений — это нормально, но чрезмерная частота впустую расходует ресурсы CPU.
Evidence to look for
Количество переключений контекста в секунду превышает 50 000 на нагруженном сервере
Загрузка CPU высокая, но пропускная способность не растёт
Уменьшение числа потоков улучшает производительность
What it usually means
Каждое переключение контекста имеет свою цену: сохранение регистров, сброс кэшей, загрузка нового состояния. При высокой частоте эти накладные расходы становятся значительными.
What to do next
- 1Уменьшить количество потоков или процессов
- 2Привязать критические потоки к конкретным ядрам
- 3Использовать асинхронный ввод-вывод вместо модели thread-per-connection
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai