Node高CPU使用率
Node.jsにおける高CPU使用率は、イベントループのブロック、タイトなループ、頻繁なJSONパス処理、正規表現のバックトラッキング、または単一プロセスへの処理集中が原因であることが多い。
Common symptoms
- NodeプロセスがCPUを繰り返し占有する
- レスポンスのレイテンシが急激に上昇する
- 1つのインスタンスがホットスポットになる
Likely causes
- リクエストハンドラ内でのブロッキングCPU処理
- 非効率なシリアライゼーションまたはパース処理
- 正規表現やループの異常動作
- 単一プロセスへの過度な並行処理集中
Evidence to look for
単一のNodeのPIDがCPU40%以上を維持している
トラフィックの急増に伴いCPU使用率が上昇する
perfキャプチャでJS/ネイティブのホットフレームが確認される
What it usually means
NodeはI/O処理を得意とするが、メインスレッドでの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