Высокая нагрузка CPU из-за блокировок
Когда несколько потоков конкурируют за одну и ту же блокировку, CPU тратится на накладные расходы синхронизации вместо полезной работы.
Evidence to look for
perf показывает функции mutex или spinlock в «горячих» стеках вызовов
Добавление новых потоков увеличивает задержку
CPU на транзакцию растёт с увеличением параллелизма
What it usually means
Система тратит циклы CPU на ожидание блокировок вместо выполнения полезной работы. Чем выше параллелизм, тем хуже, а не лучше.
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