スレッドによるCPU高負荷
一定の数を超えると、スレッドを追加してもスループットは向上しません。スケジューリングのオーバーヘッドと競合が増加するだけです。
Evidence to look for
スレッド数が利用可能なコア数を大幅に超えている
1秒あたりのコンテキストスイッチ数が異常に多い
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