explain

Высокая нагрузка CPU из-за блокировок

Когда несколько потоков конкурируют за одну и ту же блокировку, CPU тратится на накладные расходы синхронизации вместо полезной работы.

Evidence to look for

perf показывает функции mutex или spinlock в «горячих» стеках вызовов
Добавление новых потоков увеличивает задержку
CPU на транзакцию растёт с увеличением параллелизма

What it usually means

Система тратит циклы CPU на ожидание блокировок вместо выполнения полезной работы. Чем выше параллелизм, тем хуже, а не лучше.

What to do next

  1. 1Сужайте критические секции
  2. 2Сократите доступ к общему состоянию
  3. 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

Related

Высокая нагрузка CPU из-за конкуренции за блокировки | cpum.ai