Высокая загрузка CPU из-за конкуренции за блокировки
Когда несколько потоков борются за общие ресурсы, система тратит CPU на координацию вместо полезной работы.
Common symptoms
- Высокая загрузка CPU, но пропускная способность разочаровывает
- Больше параллелизма делает только хуже
- Всплески задержек непредсказуемы
Likely causes
- Конкуренция за мьютексы или блокировки
- Общие структуры данных под высокой нагрузкой
- Слишком широкие критические секции
Evidence to look for
perf показывает функции активного ожидания или ожидания
Переключения контекста коррелируют с задержками
Уменьшение числа потоков повышает пропускную способность
What it usually means
Машина занята борьбой за блокировки вместо выполнения полезной работы.
What to do next
- 1Сужайте критические секции
- 2Сокращайте обращения к общему состоянию
- 3Рассмотрите структуры данных без блокировок (lock-free) для горячих участков кода
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai