無限ループによるCPU高負荷
CPUが張り付いており、特定のプロセスが原因である場合、無限ループまたはビジーウェイトのパターンがよくある原因です。
Common symptoms
- 1つのプロセスが直ちにコアを使い切る
- CPU高負荷にもかかわらず有用な出力がない
- 再起動すると一時的に解消される
Likely causes
- 終了条件の欠如
- スリープなしのポーリング
- バックオフなしのリトライ
Evidence to look for
プロファイリングのサンプルで同じ関数が繰り返し現れる
進捗がないままCPUが高い状態を維持する
プロセスを再起動すると一時的に問題が解消される
What it usually means
プロセスが前進することなく、同じ処理を際限なく繰り返しています。
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