← Back
Off-Cpu

Off-CPU 分析の実践:CPU 使用率が低いのにレイテンシが高い 4 つの根本原因と特定方法

  • Off-CPU 時間とは何か
  • 症状:CPU 使用率が上がらないのにリクエストが滞留する
  • 4 つの Off-CPU 根本原因の実例による因果チェーン
  • Off-CPU 時間の定量化手法
  • On-CPU + Off-CPU = ウォールクロック時間:全体像とツールエコシステム
  • よくある質問
  • Off-CPU 時間とは何か
  • 症状:CPU 使用率が上がらないのにリクエストが滞留する
  • 4 つの Off-CPU 根本原因の実例による因果チェーン
  • Off-CPU 時間の定量化手法
  • On-CPU + Off-CPU = ウォールクロック時間:全体像とツールエコシステム
  • よくある質問

Nginx リバースプロキシの QPS が 15 分の 1 に低下:upstream keepalive の欠落と -O0 ビルドが原因だった

  • Nginx リバースプロキシが 15 分の 1 に低速化、それでもエラーログはゼロ
  • フレームグラフが暴いた接続ストーム:upstream keepalive の欠落
  • 残り 10% の差:ベースライン比較がコンパイラを指し示す
  • -O0 デバッグビルドが 10% の性能を奪っていた
  • Nginx リバースプロキシが 15 分の 1 に低速化、それでもエラーログはゼロ
  • フレームグラフが暴いた接続ストーム:upstream keepalive の欠落
  • 残り 10% の差:ベースライン比較がコンパイラを指し示す
  • -O0 デバッグビルドが 10% の性能を奪っていた

300 RPS で頭打ちの Nginx Worker プロセス:原因は 75 ミリ秒のイベントループ・ブロッキング

  • 負荷は高いのに仕事が進まない:worker_cpu_affinity 欠落による CPU リソース競合
  • ブロッキング Lua I/O 呼び出しが Nginx イベントループを停止させた仕組み
  • ファイル I/O レイテンシーの測定:1 回あたり最大 1.5 ミリ秒
  • Nginx イベントループのブロッキングはどれほど深刻だったか:43,952 サンプル、最大 75 ミリ秒
  • よくある質問
  • 負荷は高いのに仕事が進まない:worker_cpu_affinity 欠落による CPU リソース競合
  • ブロッキング Lua I/O 呼び出しが Nginx イベントループを停止させた仕組み
  • ファイル I/O レイテンシーの測定:1 回あたり最大 1.5 ミリ秒
  • Nginx イベントループのブロッキングはどれほど深刻だったか:43,952 サンプル、最大 75 ミリ秒
  • よくある質問

Perl プロセスの CPU 使用率が 13% のまま:off-CPU フレームグラフでブロッキング HTTP 呼び出しを特定

  • 症状:リクエストが殺到しても Perl プロセスの CPU 使用率が上がらない
  • OpenResty XRay の off-CPU フレームグラフでブロッキング Perl コードパスを特定
  • Insights ページの自動分析とレポート
  • FAQ
  • 症状:リクエストが殺到しても Perl プロセスの CPU 使用率が上がらない
  • OpenResty XRay の off-CPU フレームグラフでブロッキング Perl コードパスを特定
  • Insights ページの自動分析とレポート
  • FAQ

Go サービスの CPU 使用率が異常に低い:稼働中プロセスの off-CPU 分析でブロッキングの根本原因を特定

  • 症状:リクエストが増えても Go サービスの CPU 使用率が上がらない
  • 稼働中の Go プロセスを OpenResty XRay で off-CPU 分析
  • 根因:ブロッキングなシェルコマンド呼び出し
  • 自動分析と日次・週次レポート
  • 症状:リクエストが増えても Go サービスの CPU 使用率が上がらない
  • 稼働中の Go プロセスを OpenResty XRay で off-CPU 分析
  • 根因:ブロッキングなシェルコマンド呼び出し
  • 自動分析と日次・週次レポート

Python プロセスの CPU 使用率が 8% のまま:off-CPU 分析でブロッキング subprocess.run 呼び出しを特定

  • 症状:リクエストが殺到しても Python プロセスの CPU 使用率が上がらない
  • OpenResty XRay の Guided Analysis でブロッキング Python コードパスを特定
  • Insights ページの自動分析とレポート
  • FAQ
  • 症状:リクエストが殺到しても Python プロセスの CPU 使用率が上がらない
  • OpenResty XRay の Guided Analysis でブロッキング Python コードパスを特定
  • Insights ページの自動分析とレポート
  • FAQ

Lua io.popen が Nginx イベントループをブロックする問題:スループット 150 倍改善の実例

  • 問題点:毎秒 130 リクエスト
  • OpenResty XRay によるブロッキング特定
  • io.popen のノンブロッキング代替
  • 結果:7 倍と 150 倍
  • よくある質問
Photo by Yichun Zhang
  • 問題点:毎秒 130 リクエスト
  • OpenResty XRay によるブロッキング特定
  • io.popen のノンブロッキング代替
  • 結果:7 倍と 150 倍
  • よくある質問
お問い合わせ

ご意見・ご感想をお待ちしております 👋

メッセージを送信しました!

専門家チームが24時間以内にご連絡いたします。
x