← Back
Casestudy

OpenResty の隠れたメモリリークを無停止で特定する手法(Zero Downtime)

  • 本番環境におけるメモリリークの徹底解剖
  • なぜ、このような問題は解決が極めて困難なのか?
  • 「運任せ」から「予測可能」なシステムへ
  • パフォーマンス問題が「ツール」の域を超える時
  • 本番環境におけるメモリリークの徹底解剖
  • なぜ、このような問題は解決が極めて困難なのか?
  • 「運任せ」から「予測可能」なシステムへ
  • パフォーマンス問題が「ツール」の域を超える時

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

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

プラグインが CPU の 45% を食い潰した際、ソースコードなしで Lua の 93 行目を特定した方法?

  • perf が「ブラック ボックス」に直面したとき *「サンプリング」から「フルスタック動的トレーシング」へ
  • 証拠の連鎖を特定する
  • 「何が起こったか」から「なぜ」へ
  • perf が「ブラック ボックス」に直面したとき *「サンプリング」から「フルスタック動的トレーシング」へ
  • 証拠の連鎖を特定する
  • 「何が起こったか」から「なぜ」へ

OpenResty XRay は、Gzip 設定の潜在的なコストをいかに正確に特定するか

  • 性能問題は意外なところに潜んでいる
  • OpenResty XRay は性能ボトルネックの「根本原因」をどう特定するか
  • 性能ボトルネックの定量的な真実
  • 経験から方法論へ
  • 性能問題は意外なところに潜んでいる
  • OpenResty XRay は性能ボトルネックの「根本原因」をどう特定するか
  • 性能ボトルネックの定量的な真実
  • 経験から方法論へ

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 ミリ秒
  • よくある質問

クラッシュから根本原因まで:OpenResty XRay が Nginx メモリ破壊問題を明確に分析する方法

  • 事例の背景:ログでは説明できない Nginx ワーカープロセスの頻繁なクラッシュ
  • 記録ファイルの分析:クラッシュを「第一現場」まで巻き戻して再生する
  • 根本原因:Nginx 接続ライフサイクルにおける Use-After-Free
  • よくある質問(FAQ)
Photo by 章亦春
  • 事例の背景:ログでは説明できない Nginx ワーカープロセスの頻繁なクラッシュ
  • 記録ファイルの分析:クラッシュを「第一現場」まで巻き戻して再生する
  • 根本原因:Nginx 接続ライフサイクルにおける Use-After-Free
  • よくある質問(FAQ)

OpenResty の LRU キャッシュに起因するメモリリークを追跡する —— 根本原因はキャッシュされた SSL 証明書

  • なぜ低トラフィックの OpenResty アプリがメモリをリークし続けたのか
  • LRU キャッシュのメモリリークを一歩ずつ追跡する全過程
  • 最終結果:無限の増加から安定したメモリへ
Photo by 章亦春
  • なぜ低トラフィックの OpenResty アプリがメモリをリークし続けたのか
  • LRU キャッシュのメモリリークを一歩ずつ追跡する全過程
  • 最終結果:無限の増加から安定したメモリへ

Nginx Worker の CPU 使用率の偏り:reuseport 未設定と cjson ボトルネックを特定

  • 症状:一部の Nginx Worker プロセスだけ CPU が張り付き、他はアイドル状態
  • OpenResty XRay による根本原因の特定
  • 修正:3 つの最適化とそれぞれの実測効果
  • 要約:OpenResty XRay が数分で特定した内容
  • よくある質問
Photo by 章亦春
  • 症状:一部の Nginx Worker プロセスだけ CPU が張り付き、他はアイドル状態
  • OpenResty XRay による根本原因の特定
  • 修正:3 つの最適化とそれぞれの実測効果
  • 要約:OpenResty XRay が数分で特定した内容
  • よくある質問
お問い合わせ

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

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

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