ロックによるCPU高負荷
複数のスレッドが同じロックを競合すると、CPUは生産的な処理ではなく同期のオーバーヘッドに費やされます。
Evidence to look for
perf のホットスタックにミューテックスまたはスピンロック関数が表示される
スレッドを増やすとレイテンシが悪化する
並行処理数の増加とともにトランザクションあたりのCPU使用量が増加する
What it usually means
システムが有用な処理ではなくロック待ちにCPUサイクルを消費しています。並行処理を増やすと状況はさらに悪化します。
What to do next
- 1クリティカルセクションを狭くする
- 2共有状態へのアクセスパターンを減らす
- 3ホットパスにはロックフリーのデータ構造を検討する
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai