- 問題点
- 分析
- 解決策
- 結果
精选文章
最新記事
巨大な Nginx 設定による メモリフラグメンテーションの最適化
- 課題
- 分析
- 解決策
- 結果

- 課題
- 分析
- 解決策
- 結果
OpenResty XRay についての FAQ
OpenResty XRay 製品のための「よくある質問」ドキュメントを作成

OpenResty XRay 製品のための「よくある質問」ドキュメントを作成
OpenResty XRay の自動分析レポート
- 過去
- 現在
- 将来

- 過去
- 現在
- 将来
OpenResty XRay による ビリビリ動画の重大なオンライン障害の分析と解決
- 障害の説明
- 障害分析のプロセス
- 障害後の修復と強化
- OpenResty XRay の製品とサービス

- 障害の説明
- 障害分析のプロセス
- 障害後の修復と強化
- OpenResty XRay の製品とサービス
OpenResty または Nginx プロセスにおける最も遅い PCRE 正規表現のトレース
- システム環境
- 推測せずに原因を絞り込む
- PCRE の実行オーバーヘッドの制限
- バックトラッキングを行わない正規表現エンジン
- Lua の組み込みパターン
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド

- システム環境
- 推測せずに原因を絞り込む
- PCRE の実行オーバーヘッドの制限
- バックトラッキングを行わない正規表現エンジン
- Lua の組み込みパターン
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド
OpenResty または Nginx プロセスにおける読み込み済み Lua モジュールの一覧表示
- システム環境
- 読み込み済み Lua モジュールの名前
- Web コンソールで直接実行
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド

- システム環境
- 読み込み済み Lua モジュールの名前
- Web コンソールで直接実行
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド
OpenResty または Nginx における最も CPU を消費するリクエストの分析
- システム環境
- CPU 使用率が最も高いリクエストのホスト名
- CPU 使用率が最も高いリクエストの URI
- さらに深く掘り下げる
- Web コンソールで直接実行する
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド

- システム環境
- CPU 使用率が最も高いリクエストのホスト名
- CPU 使用率が最も高いリクエストの URI
- さらに深く掘り下げる
- Web コンソールで直接実行する
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド
メモリ使用量が 60% 削減、OpenResty XRay で問題コードを正確に特定し、迅速に修正・デプロイを実現
- worker プロセスのメモリ使用量が高い問題について
- OpenResty XRay による分析プロセス
- worker プロセスのメモリが解放されない疑問について

- worker プロセスのメモリ使用量が高い問題について
- OpenResty XRay による分析プロセス
- worker プロセスのメモリが解放されない疑問について
Lua レベル CPU フレームグラフの概要
- フレームグラフとは何か
- 簡単な Lua の例
- 複雑な Lua アプリケーション
- サンプリングのオーバーヘッド
- セキュリティ
- 互換性
- その他の種類の Lua レベルフレームグラフ

- フレームグラフとは何か
- 簡単な Lua の例
- 複雑な Lua アプリケーション
- サンプリングのオーバーヘッド
- セキュリティ
- 互換性
- その他の種類の Lua レベルフレームグラフ
OpenResty と Nginx の共有メモリ領域におけるメモリフラグメンテーションの問題
- 空の共有メモリ領域
- 類似サイズのエントリで埋める
- 奇数キーの削除
- 前半部分のキーの削除
- メモリフラグメンテーションの緩和

- 空の共有メモリ領域
- 類似サイズのエントリで埋める
- 奇数キーの削除
- 前半部分のキーの削除
- メモリフラグメンテーションの緩和
OpenResty と Nginx の共有メモリ領域が物理メモリをどのように消費するか
- Slab とメモリページ
- 割り当てられたメモリが必ずしも消費されるわけではない
- 偽のメモリリーク
- HUP による再読み込み

- Slab とメモリページ
- 割り当てられたメモリが必ずしも消費されるわけではない
- 偽のメモリリーク
- HUP による再読み込み
OpenResty と Nginx のメモリ割り当てと管理方法
- Nginx のメモリ使用量を確認する方法
- システムレベル
- アプリケーションレベル
- 従来の Nginx サーバー
- FAQ: Nginx はどれだけのメモリを必要とするか

- Nginx のメモリ使用量を確認する方法
- システムレベル
- アプリケーションレベル
- 従来の Nginx サーバー
- FAQ: Nginx はどれだけのメモリを必要とするか
LuaJIT GC64 モード
- 旧メモリ制限
- このメモリ制限に遭遇する時期
- メモリ制限はプロセスごと
- GC が管理するメモリ
- GC が管理しないメモリ
- x64 モードのメモリ上限を 4 GB に引き上げる
- 新しい GC64 モード
- GC64 モードの有効化方法
- パフォーマンスへの影響
- デバッグ分析ツールチェーン

- 旧メモリ制限
- このメモリ制限に遭遇する時期
- メモリ制限はプロセスごと
- GC が管理するメモリ
- GC が管理しないメモリ
- x64 モードのメモリ上限を 4 GB に引き上げる
- 新しい GC64 モード
- GC64 モードの有効化方法
- パフォーマンスへの影響
- デバッグ分析ツールチェーン
動的トレース技術についての雑談
- 動的トレーシングとは
- 動的トレーシングの利点
- DTrace と SystemTap
- SystemTap の実運用での活用
- フレームグラフ
- 方法論
- 知識は力なり
- オープンソースとデバッグシンボル
- Linux カーネルのサポート
- ハードウェアトレーシング
- 終了プロセスの解析
- 従来のデバッグ技術
- 混沌としたデバッグの世界
- OpenResty XRay

- 動的トレーシングとは
- 動的トレーシングの利点
- DTrace と SystemTap
- SystemTap の実運用での活用
- フレームグラフ
- 方法論
- 知識は力なり
- オープンソースとデバッグシンボル
- Linux カーネルのサポート
- ハードウェアトレーシング
- 終了プロセスの解析
- 従来のデバッグ技術
- 混沌としたデバッグの世界
- OpenResty XRay
OpenResty XRay AI アシスタント:すべての分析データに語らせる
- 「レポートを ChatGPT に貼り付ける」のと何が違うのか?
- 3 つの典型的なシナリオ
- 信頼性について、正直に申し上げます
- よくある質問:AI は本当にフレームグラフを読めるのか?

- 「レポートを ChatGPT に貼り付ける」のと何が違うのか?
- 3 つの典型的なシナリオ
- 信頼性について、正直に申し上げます
- よくある質問:AI は本当にフレームグラフを読めるのか?
OpenResty プライベートライブラリ:高性能 Lua & Nginx モジュール
- 全カタログ
- シナリオ別の内容
- ライセンスの仕組み
- FAQ

- 全カタログ
- シナリオ別の内容
- ライセンスの仕組み
- FAQ
OpenResty XRay バージョン 26.5.11 正式リリース
- 主なハイライト
- その他の重要な更新

- 主なハイライト
- その他の重要な更新
OpenResty XRay バージョン 26.2.1 正式リリース
- 主なハイライト
- 安定性と使いやすさの最適化

- 主なハイライト
- 安定性と使いやすさの最適化
コード変更・サービス再起動なし:OpenResty XRay による本番環境での動的トレーシング実践法
- 既存の動的トレーシングフレームワークが本番環境で抱える限界と課題とは?
- OpenResty XRay が動的トレーシングのアーキテクチャ設計で実現した技術的革新とは?
- フルスタックフレームグラフとは何か?
- OpenResty XRay の対応範囲はどのように継続的に広がっているか?

- 既存の動的トレーシングフレームワークが本番環境で抱える限界と課題とは?
- OpenResty XRay が動的トレーシングのアーキテクチャ設計で実現した技術的革新とは?
- フルスタックフレームグラフとは何か?
- OpenResty XRay の対応範囲はどのように継続的に広がっているか?
OpenResty XRay 入門:コードを変更せずに、システム深層の「鼓動」を聴く
- OpenResty XRay が実現する究極の可観測性基盤
- シグナルからインサイトへ
- 次世代のクラウドネイティブ・エンジニアリング
- オープンなエコシステムと堅牢な技術基盤

- OpenResty XRay が実現する究極の可観測性基盤
- シグナルからインサイトへ
- 次世代のクラウドネイティブ・エンジニアリング
- オープンなエコシステムと堅牢な技術基盤
OpenResty の隠れたメモリリークを無停止で特定する手法(Zero Downtime)
- 実例:ボトルネックの発見から大幅な高速化まで
- OpenResty XRay の動作原理
- 最適化の効果
- 適用シナリオと実践的なアドバイス

- 実例:ボトルネックの発見から大幅な高速化まで
- OpenResty XRay の動作原理
- 最適化の効果
- 適用シナリオと実践的なアドバイス
OpenResty XRay で 15 倍の QPS 差を解決した事例
- 93% 性能低下の裏に潜む観測の死角
- OpenResty XRay がコネクション再利用の問題を明らかにします
- 比較分析により判明したコンパイルオプションの問題
- コンパイラオプションが命令実行効率に与える影響

- 93% 性能低下の裏に潜む観測の死角
- OpenResty XRay がコネクション再利用の問題を明らかにします
- 比較分析により判明したコンパイルオプションの問題
- コンパイラオプションが命令実行効率に与える影響
50万 QPS の OpenResty ゲートウェイで発生した「謎の 244ms 遅延」の原因を特定した話
- 「地震計」が震源を特定できない時
- 経験主義から動的観測への価値転換
- 定量的なエンジニアリング効率とリソース最適化指標
- 継続的なパフォーマンス観測能力の構築

- 「地震計」が震源を特定できない時
- 経験主義から動的観測への価値転換
- 定量的なエンジニアリング効率とリソース最適化指標
- 継続的なパフォーマンス観測能力の構築
プラグインが CPU の 45% を食い潰した際、ソースコードなしで Lua の 93 行目を特定した方法?
- perf が「ブラック ボックス」に直面したとき *「サンプリング」から「フルスタック動的トレーシング」へ
- 証拠の連鎖を特定する
- 「何が起こったか」から「なぜ」へ

- perf が「ブラック ボックス」に直面したとき *「サンプリング」から「フルスタック動的トレーシング」へ
- 証拠の連鎖を特定する
- 「何が起こったか」から「なぜ」へ
本番環境で Java メモリリークを特定する方法——ヒープダンプも再起動も不要
- 複数回の Full GC 後もヒープが回収されない理由:本番環境の Java メモリリーク
- ヒープダンプなしで本番環境の Java メモリリークを診断する方法
- Java メモリリークを特定する再利用可能な 3 ステップ法
- OpenResty XRay を選ぶ理由
- よくある質問

- 複数回の Full GC 後もヒープが回収されない理由:本番環境の Java メモリリーク
- ヒープダンプなしで本番環境の Java メモリリークを診断する方法
- Java メモリリークを特定する再利用可能な 3 ステップ法
- OpenResty XRay を選ぶ理由
- よくある質問
OpenResty XRay バージョン 25.10.11 正式リリース
- 特に注目すべき 3 つのポイント
- 診断精度と安定性の強化
- ユーザビリティとセキュリティの強化
- アップグレード方法

- 特に注目すべき 3 つのポイント
- 診断精度と安定性の強化
- ユーザビリティとセキュリティの強化
- アップグレード方法
OpenResty XRay は、Gzip 設定の潜在的なコストをいかに正確に特定するか
- 性能問題は意外なところに潜んでいる
- OpenResty XRay は性能ボトルネックの「根本原因」をどう特定するか
- 性能ボトルネックの定量的な真実
- 経験から方法論へ:OpenResty XRay が示す可観測性の新境地
- 関連記事

- 性能問題は意外なところに潜んでいる
- OpenResty XRay は性能ボトルネックの「根本原因」をどう特定するか
- 性能ボトルネックの定量的な真実
- 経験から方法論へ:OpenResty XRay が示す可観測性の新境地
- 関連記事
C++ プロセスにおけるメモリリークを OpenResty XRayで 迅速に特定する方法
- 技術的な課題と初期診断
- フレームグラフで特定!メモリリークの「ホットスポット」
- XRay が実現するトラブルシューティングの新たなサイクル
- まとめ

- 技術的な課題と初期診断
- フレームグラフで特定!メモリリークの「ホットスポット」
- XRay が実現するトラブルシューティングの新たなサイクル
- まとめ
非侵入型 Java プロファイラ:Java Agent なしで本番環境のメソッド引数をキャプチャ
- なぜ非侵入型 Java プロファイリングが本番環境で重要なのか
- 実践デモ:本番環境で Java メソッド引数をキャプチャ
- OpenResty XRay と一般的な Java プロファイラの違い
- よくある質問

- なぜ非侵入型 Java プロファイリングが本番環境で重要なのか
- 実践デモ:本番環境で Java メソッド引数をキャプチャ
- OpenResty XRay と一般的な Java プロファイラの違い
- よくある質問
OpenResty XRay が最小限のデータで、最も困難な問題を特定する方法
- 「より多くのデータ」は「より深い洞察」ではない
- OpenResty XRay の違いとは?
- 活用事例
- まとめ

- 「より多くのデータ」は「より深い洞察」ではない
- OpenResty XRay の違いとは?
- 活用事例
- まとめ
金融サービスにおけるメモリ使用量急増:OpenResty XRay がフレームグラフでメモリ消費を 40% 削減
- フレイムグラフでメモリリークの根本原因をピンポイントで特定
- 顕著な最適化の成果
- 関連資料

- フレイムグラフでメモリリークの根本原因をピンポイントで特定
- 顕著な最適化の成果
- 関連資料
OpenResty XRay:Node.js 関数プローブによる新監視パラダイムの実現
- なぜ非侵入型関数プローブという新しいパラダイムが必要なのか?
- 実践デモ:関数パラメータの監視
- トップチームはいかにして非侵入型プローブを活用し、開発生産性を向上させているのか?
- まとめ

- なぜ非侵入型関数プローブという新しいパラダイムが必要なのか?
- 実践デモ:関数パラメータの監視
- トップチームはいかにして非侵入型プローブを活用し、開発生産性を向上させているのか?
- まとめ
アプリケーションの応答遅延?OpenResty XRay が 75 ミリ秒のブロッキングの真因を特定
- パフォーマンスのボトルネック:CPU リソース競合の顕在化
- 根本原因の特定:ブロッキング Lua I/O 操作
- 定量分析:ファイル I/O 性能への影響
- イベントループのブロッキング状況の包括的な評価
- OpenResty XRay で Nginx パフォーマンスの悪夢に終止符を打つ

- パフォーマンスのボトルネック:CPU リソース競合の顕在化
- 根本原因の特定:ブロッキング Lua I/O 操作
- 定量分析:ファイル I/O 性能への影響
- イベントループのブロッキング状況の包括的な評価
- OpenResty XRay で Nginx パフォーマンスの悪夢に終止符を打つ
二重のボトルネック並行処理?OpenResty XRay の多次元分析で性能問題を解決
- 全体的 CPU 使用分析
- モジュール内部の詳細分析
- 圧縮戦略の詳細分析
- 分析結論
- 最適化ソリューション

- 全体的 CPU 使用分析
- モジュール内部の詳細分析
- 圧縮戦略の詳細分析
- 分析結論
- 最適化ソリューション
オンライン Node.js アプリケーションの CPU 使用状況分析(OpenResty XRay を使用)
- Node.js アプリケーションにおける高 CPU 使用率の問題
- Node.js アプリケーションにおける CPU ブロッキングの問題
- 「サポートされている Node.js バージョンとオペレーティングシステム
- 自動サンプリングと専門家による分析
- パフォーマンスへの影響と追加負荷

- Node.js アプリケーションにおける高 CPU 使用率の問題
- Node.js アプリケーションにおける CPU ブロッキングの問題
- 「サポートされている Node.js バージョンとオペレーティングシステム
- 自動サンプリングと専門家による分析
- パフォーマンスへの影響と追加負荷
クラッシュから根本原因まで:OpenResty XRay が Nginx メモリ破壊問題を明確に分析する方法
- Nginx クラッシュで運用チームが徹夜する事例
- OpenResty XRay でメモリ破壊の「第一現場」を正確に捉える方法
- 「二次開発がどのように Nginx のライフサイクル管理を意図せず破壊したか

- Nginx クラッシュで運用チームが徹夜する事例
- OpenResty XRay でメモリ破壊の「第一現場」を正確に捉える方法
- 「二次開発がどのように Nginx のライフサイクル管理を意図せず破壊したか
UDB + OpenResty XRay:OpenResty アプリケーションのパフォーマンスの謎を解き明かす
- OpenResty XRay と UDB の連携による効率化
- 実践:UDB と OpenResty XRay を用いた OpenResty アプリケーションにおける Lua コード呼び出しスタックの分析
- 時間遡行デバッグの利点
- まとめ

- OpenResty XRay と UDB の連携による効率化
- 実践:UDB と OpenResty XRay を用いた OpenResty アプリケーションにおける Lua コード呼び出しスタックの分析
- 時間遡行デバッグの利点
- まとめ
UDB と OpenResty XRay による Perl コード実行全プロセスの可視化
- UDB とは?
- 実践:OpenResty XRay と UDB を使用した Perl アプリケーションのコードコールスタック分析
- なぜ、より多くの開発者が UDB を選択するのでしょうか?
- まとめ

- UDB とは?
- 実践:OpenResty XRay と UDB を使用した Perl アプリケーションのコードコールスタック分析
- なぜ、より多くの開発者が UDB を選択するのでしょうか?
- まとめ
Java ファイル I/O をタイムトラベルコールスタックでデバッグする方法
- IDE のブレークポイントと coredump が Java ファイル I/O で届かないところ
- Native write() システムコールから完全な Java コールスタックを再構築する
- タイムトラベル再生で Java ファイル I/O を段階的にデバッグする
- よくある質問

- IDE のブレークポイントと coredump が Java ファイル I/O で届かないところ
- Native write() システムコールから完全な Java コールスタックを再構築する
- タイムトラベル再生で Java ファイル I/O を段階的にデバッグする
- よくある質問
UDB のタイムトラベル機能を活用し、Python コードの実行プロセスを解明
- Python デバッグにおける UDB の独自の価値
- OpenResty XRay との連携によるデバッグ能力の強化
- 実践事例:Python のネットワークリクエストにおけるコールスタックの分析
- まとめ

- Python デバッグにおける UDB の独自の価値
- OpenResty XRay との連携によるデバッグ能力の強化
- 実践事例:Python のネットワークリクエストにおけるコールスタックの分析
- まとめ
実戦事例:OpenResty XRay を使用した LRU キャッシュに起因するメモリリークの追跡
- 見えざる脅威:メモリリークはビジネスの安定性をいかに脅かすか
- メモリリークの完全な調査プロセスを解明
- 窮地から飛躍へ:一回の的確な診断がもたらした変革

- 見えざる脅威:メモリリークはビジネスの安定性をいかに脅かすか
- メモリリークの完全な調査プロセスを解明
- 窮地から飛躍へ:一回の的確な診断がもたらした変革
実戦レポート!OpenResty XRay で DNS 性能を 60% 向上させた徹底解析
- 「ライフライン」DNS サービスがパフォーマンス危機に直面
- OpenResty XRay で問題の根本原因を段階的に調査する方法
- 精密な「治療」:三段階で再生を実現
- 要約:わずか数分で達成したこと

- 「ライフライン」DNS サービスがパフォーマンス危機に直面
- OpenResty XRay で問題の根本原因を段階的に調査する方法
- 精密な「治療」:三段階で再生を実現
- 要約:わずか数分で達成したこと
動的トレースの万能ツール:Y 言語が動的トレースを簡単にする方法
- モダンソフトウェアアーキテクチャにおける問題解決がますます難しくなっている理由
- 可観測性技術の進化と将来展望
- 動的トレース技術はどのように抽象化レイヤーを通過するのか?
- 「時間+空間」二次元トラッキングモデル
- 実践事例:オンライン Kong サービスにおけるプラグインリソース消費のリアルタイム統計

- モダンソフトウェアアーキテクチャにおける問題解決がますます難しくなっている理由
- 可観測性技術の進化と将来展望
- 動的トレース技術はどのように抽象化レイヤーを通過するのか?
- 「時間+空間」二次元トラッキングモデル
- 実践事例:オンライン Kong サービスにおけるプラグインリソース消費のリアルタイム統計
OpenResty XRay の画期的なアップデート:Java アプリケーションのメモリと Envoy Lua のパフォーマンスを非侵襲的に分析
- 非侵入で、Java アプリケーションのメモリを徹底解明
- Envoy 内の Lua パフォーマンス・ブラックボックスを初めて解明
- 挑戦は続いています

- 非侵入で、Java アプリケーションのメモリを徹底解明
- Envoy 内の Lua パフォーマンス・ブラックボックスを初めて解明
- 挑戦は続いています
動的トレースが本番環境デバッグの未来である理由
- 動的トレース技術の実装における課題
- OpenResty XRay:次世代動的トレーシングソリューション
- 結語:動的トレースの未来

- 動的トレース技術の実装における課題
- OpenResty XRay:次世代動的トレーシングソリューション
- 結語:動的トレースの未来
動的トレーシング技術の深層:OpenResty XRay がどのように問題診断方法を根本的に変革するか
- 動的トレーシング:複雑なシステム問題を解決する強力なツール
- なぜ OpenResty XRay をお選びいただくべきか?
- 製品フォーカス:実際のシナリオにおける XRay の適用事例
- よくある誤解と FAQ:動的トレースについて知っておきたいこと

- 動的トレーシング:複雑なシステム問題を解決する強力なツール
- なぜ OpenResty XRay をお選びいただくべきか?
- 製品フォーカス:実際のシナリオにおける XRay の適用事例
- よくある誤解と FAQ:動的トレースについて知っておきたいこと
動的トレーシングの実装が難しい理由とは?OpenResty XRay はどのようにこの課題を解決するのか?
- 動的トレース技術の実装における課題
- OpenResty XRay:次世代動的トレーシングソリューション
- 結語:動的トレースの未来

- 動的トレース技術の実装における課題
- OpenResty XRay:次世代動的トレーシングソリューション
- 結語:動的トレースの未来
ログ、イベントトラッキング、A/B テストだけでは不十分?「動的トレーシング」を理解すべき時期
- 従来の方法 vs 動的トレーシング:効率性と制御力の革命
- 動的トレース:システムの「透視眼」
- フレームグラフからシステム全体像へ
- OpenResty XRay を選ぶ理由
- 可観測性の未来:動的トレースの新境地

- 従来の方法 vs 動的トレーシング:効率性と制御力の革命
- 動的トレース:システムの「透視眼」
- フレームグラフからシステム全体像へ
- OpenResty XRay を選ぶ理由
- 可観測性の未来:動的トレースの新境地
可観測性の次なる段階:OpenResty XRay が問題解決を再定義する方法
- モダンソフトウェアアーキテクチャにおける問題解決がますます難しくなっている理由
- 可観測性技術の進化と将来展望
- 動的トレース技術はどのように抽象化レイヤーを通過するのか?
- 「時間+空間」二次元トラッキングモデル
- 実践事例:オンライン Kong サービスにおけるプラグインリソース消費のリアルタイム統計

- モダンソフトウェアアーキテクチャにおける問題解決がますます難しくなっている理由
- 可観測性技術の進化と将来展望
- 動的トレース技術はどのように抽象化レイヤーを通過するのか?
- 「時間+空間」二次元トラッキングモデル
- 実践事例:オンライン Kong サービスにおけるプラグインリソース消費のリアルタイム統計
ブラックボックスからホワイトボックスへ:OpenResty XRay でシステム問題を可視化する
- ブラックボックスをホワイトボックスに変える動的トレースツール
- 多角的な総合分析能力
- 実例紹介
- 製品ビジョン

- ブラックボックスをホワイトボックスに変える動的トレースツール
- 多角的な総合分析能力
- 実例紹介
- 製品ビジョン
自己最適化:OpenResty XRay の性能変革
- 課題と痛点
- OpenResty XRay の自己分析プロセス
- 驚くべき最適化の成果
- 技術的洞察とビジネス価値

- 課題と痛点
- OpenResty XRay の自己分析プロセス
- 驚くべき最適化の成果
- 技術的洞察とビジネス価値
OpenResty XRay によるスクリプトパフォーマンスの 44 倍向上
- 実例:ボトルネックの発見から大幅な高速化まで
- OpenResty XRay の動作原理
- 最適化の効果
- 適用シナリオと実践的なアドバイス

- 実例:ボトルネックの発見から大幅な高速化まで
- OpenResty XRay の動作原理
- 最適化の効果
- 適用シナリオと実践的なアドバイス
クロスメディアデータ構造ドリフト:OpenResty XRay が性能を 20 倍向上
- 性能の課題とブレークスルー
- 20 倍の性能向上の実際的意義
- 今後の展望

- 性能の課題とブレークスルー
- 20 倍の性能向上の実際的意義
- 今後の展望
OOM から O(1)へ:OpenResty ストリーミング JSON パーサーの実装方法
- JSONL フォーマットと従来の JSON の違い
- 解決策
- 技術検証
- 継続的な最適化
- 技術的示唆

- JSONL フォーマットと従来の JSON の違い
- 解決策
- 技術検証
- 継続的な最適化
- 技術的示唆
数日から数時間へ:OpenResty XRay が Linux shred ツールを数十倍高速化する
- 問題分析
- XRay 実践効果
- 最適化プロセス
- 応用価値
- まとめと展望

- 問題分析
- XRay 実践効果
- 最適化プロセス
- 応用価値
- まとめと展望
実践共有:OpenResty XRay が Ylang コンパイラのパフォーマンスを倍増
- 顕著な最適化成果
- Ylang 言語:動的トレースの理想的なツール
- 技術協調の模範例

- 顕著な最適化成果
- Ylang 言語:動的トレースの理想的なツール
- 技術協調の模範例
OpenResty XRay の Web コンソールツアー
- Insight ページの紹介
- 自動レポートの詳細
- Dashboard パフォーマンス指標ダッシュボード
- Guided Analysis を使用したオンライン分析
- システム設定と設定ページ

- Insight ページの紹介
- 自動レポートの詳細
- Dashboard パフォーマンス指標ダッシュボード
- Guided Analysis を使用したオンライン分析
- システム設定と設定ページ
OpenResty XRay モバイルアプリケーションにつうてのご紹介
- OpenResty XRay Android 版のダウンロードとインストール
- OpenResty XRay へのログイン
- 全自動分析レポート
- ダッシュボードページでパフォーマンスチャートデータの確認
- Guided Analysis 機能

- OpenResty XRay Android 版のダウンロードとインストール
- OpenResty XRay へのログイン
- 全自動分析レポート
- ダッシュボードページでパフォーマンスチャートデータの確認
- Guided Analysis 機能
OpenResty XRay についての FAQ
OpenResty XRay 製品のための「よくある質問」ドキュメントを作成

OpenResty XRay 製品のための「よくある質問」ドキュメントを作成
OpenResty XRay の自動分析レポート
- 過去
- 現在
- 将来

- 過去
- 現在
- 将来
OpenResty XRay による ビリビリ動画の重大なオンライン障害の分析と解決
- 障害の説明
- 障害分析のプロセス
- 障害後の修復と強化
- OpenResty XRay の製品とサービス

- 障害の説明
- 障害分析のプロセス
- 障害後の修復と強化
- OpenResty XRay の製品とサービス
OpenResty または Nginx プロセスにおける最も遅い PCRE 正規表現のトレース
- システム環境
- 推測せずに原因を絞り込む
- PCRE の実行オーバーヘッドの制限
- バックトラッキングを行わない正規表現エンジン
- Lua の組み込みパターン
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド

- システム環境
- 推測せずに原因を絞り込む
- PCRE の実行オーバーヘッドの制限
- バックトラッキングを行わない正規表現エンジン
- Lua の組み込みパターン
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド
動的トレース技術についての雑談
- 動的トレーシングとは
- 動的トレーシングの利点
- DTrace と SystemTap
- SystemTap の実運用での活用
- フレームグラフ
- 方法論
- 知識は力なり
- オープンソースとデバッグシンボル
- Linux カーネルのサポート
- ハードウェアトレーシング
- 終了プロセスの解析
- 従来のデバッグ技術
- 混沌としたデバッグの世界
- OpenResty XRay

- 動的トレーシングとは
- 動的トレーシングの利点
- DTrace と SystemTap
- SystemTap の実運用での活用
- フレームグラフ
- 方法論
- 知識は力なり
- オープンソースとデバッグシンボル
- Linux カーネルのサポート
- ハードウェアトレーシング
- 終了プロセスの解析
- 従来のデバッグ技術
- 混沌としたデバッグの世界
- OpenResty XRay
Kubernetes クラスター上に OpenResty XRay の Agent をインストールする
- コンソールにログイン
- Kubernetes クラスター上に Agent をインストール
- アプリケーションの設定と検出
- アナライザーの起動と分析結果の確認
- 別の Agent のインストール

- コンソールにログイン
- Kubernetes クラスター上に Agent をインストール
- アプリケーションの設定と検出
- アナライザーの起動と分析結果の確認
- 別の Agent のインストール
Amazon Linux 上での OpenResty XRay Agent のインストール方法(Bundle パッケージを使用)
- コンソールにログイン
- Bundle パッケージを使用した Agent のインストール
- アプリケーションの設定と検出
- アナライザの起動と分析結果の確認
- 別の Agent のインストールt

- コンソールにログイン
- Bundle パッケージを使用した Agent のインストール
- アプリケーションの設定と検出
- アナライザの起動と分析結果の確認
- 別の Agent のインストールt
CentOS 上に OpenResty XRay の Agent をインストールする方法(RPM パッケージリポジトリを使用)
- コンソールにログイン
- RPM パッケージリポジトリを使用した Agent のインストール
- 检查 Agent 状态和日志
- アプリケーションの設定と検出
- アナライザーの起動と分析結果の確認
- 別の Agent のインストール

- コンソールにログイン
- RPM パッケージリポジトリを使用した Agent のインストール
- 检查 Agent 状态和日志
- アプリケーションの設定と検出
- アナライザーの起動と分析結果の確認
- 別の Agent のインストール
Microsoft Azure クラウド上に OpenResty XRay オンプレミス版をインストールする
- サブスクリプションとリソースグループの作成
- Azure Kubernetes サービスの作成
- 環境変数の準備
- コマンドラインから Azure にログイン\n* Kubernetes の namespace と secret の作成
- Azure ディスクの作成
- 永続化ボリュームの設定ファイルの更新
- Kubernetes の設定ファイルの更新
- 永続化ボリュームの作成
- Kubernetes サービスのデプロイ
- アプリケーションゲートウェイの設定

- サブスクリプションとリソースグループの作成
- Azure Kubernetes サービスの作成
- 環境変数の準備
- コマンドラインから Azure にログイン\n* Kubernetes の namespace と secret の作成
- Azure ディスクの作成
- 永続化ボリュームの設定ファイルの更新
- Kubernetes の設定ファイルの更新
- 永続化ボリュームの作成
- Kubernetes サービスのデプロイ
- アプリケーションゲートウェイの設定
Linux 上の Go サービスのディスク I/O 高負荷をデバッグする方法
- ディスク I/O が高い Go プロセスの特定
- フレームグラフで Go のディスク読み書きコードパスを追跡
- 自動ディスク I/O 分析レポート
- よくある質問

- ディスク I/O が高い Go プロセスの特定
- フレームグラフで Go のディスク読み書きコードパスを追跡
- 自動ディスク I/O 分析レポート
- よくある質問
本番環境で Go の Panic をトレースする方法(再起動不要)
- Go アプリケーションのプログラム例外を分析
- 完全自動化された分析レポート
- よくある質問

- Go アプリケーションのプログラム例外を分析
- 完全自動化された分析レポート
- よくある質問
OpenResty XRay を使用して Prometheus アプリケーション内の CPU 使用率が最も高い Go コードパスを特定する
- 問題:高 CPU 使用率
- CPU 使用率が最も高い Go コードパスを特定
- 完全自動化された分析とレポート

- 問題:高 CPU 使用率
- CPU 使用率が最も高い Go コードパスを特定
- 完全自動化された分析とレポート
CockroachDB における CPU 時間の消費状況(OpenResty XRay を使用)
- 問題:高 CPU 使用率
- Cockroach での CPU 時間の消費状況を分析
- 完全自動化された分析レポート

- 問題:高 CPU 使用率
- Cockroach での CPU 時間の消費状況を分析
- 完全自動化された分析レポート
Go アプリケーションの追跡時における OpenResty XRay のシステムパフォーマンスへの影響
- アナライザー実行前のアプリケーションパフォーマンス
- アナライザー実行中のパフォーマンスへの影響
- アナライザー実行時のスループットとレイテンシーへの実際の影響測定

- アナライザー実行前のアプリケーションパフォーマンス
- アナライザー実行中のパフォーマンスへの影響
- アナライザー実行時のスループットとレイテンシーへの実際の影響測定
カスタム Ylang アナライザーを作成して Go プログラムを動的にトレースする(OpenResty XRay を使用)
- Go 変数に 2 つのキーと値のペアを挿入
- カスタム Ylang アナライザーを作成して Go プログラムを動的にトレース
- テスト結果

- Go 変数に 2 つのキーと値のペアを挿入
- カスタム Ylang アナライザーを作成して Go プログラムを動的にトレース
- テスト結果
Go の etcd サーバーの CPU 時間の使用状況(OpenResty XRay を使用)
- 問題: 高 CPU 使用率
- 最も CPU を消費する Go コードパスを特定
- 完全自動化された分析とレポート

- 問題: 高 CPU 使用率
- 最も CPU を消費する Go コードパスを特定
- 完全自動化された分析とレポート
オンラインで Go コードパスのブロッキングスレッドを迅速に特定する方法(OpenResty XRay を使用)
- 問題: CPU 使用率が上がらない
- off-CPU 時間を最も占有する Go コードパスを特定
- 完全自動化された分析とレポート

- 問題: CPU 使用率が上がらない
- off-CPU 時間を最も占有する Go コードパスを特定
- 完全自動化された分析とレポート
オンラインで Go コードの CPU 使用率が最も高いパスを素早く特定する方法(OpenResty XRay を使用)
- 問題: 高 CPU 使用率
- 最も CPU 使用率の高い Go コードパスを特定
- 完全自動化された分析とレポート

- 問題: 高 CPU 使用率
- 最も CPU 使用率の高い Go コードパスを特定
- 完全自動化された分析とレポート
XRay で Python アプリケーションのディスク I/O 高負荷を診断
- ディスク I/O が高い Python プロセスの特定
- フレームグラフで Python のディスク読み書きコードパスを追跡
- 自動ディスク I/O 分析レポート
- よくある質問

- ディスク I/O が高い Python プロセスの特定
- フレームグラフで Python のディスク読み書きコードパスを追跡
- 自動ディスク I/O 分析レポート
- よくある質問
Python アプリケーションの追跡時における OpenResty XRay のシステムパフォーマンスへの影響
- アナライザー実行前のアプリケーションパフォーマンス
- アナライザー実行中のパフォーマンスへの影響
- アナライザー実行時のスループットとレイテンシーへの実際の影響測定

- アナライザー実行前のアプリケーションパフォーマンス
- アナライザー実行中のパフォーマンスへの影響
- アナライザー実行時のスループットとレイテンシーへの実際の影響測定
Python の Django アプリケーション内部のメモリ使用状況(OpenResty XRay を使用)
- 問題: メモリ使用量が高い
- Django アプリケーションを分析
- 完全自動化された分析とレポート

- 問題: メモリ使用量が高い
- Django アプリケーションを分析
- 完全自動化された分析とレポート
オンラインで Python プロセス内の大規模メモリオブジェクトを特定する(OpenResty XRay を使用)
- 問題:メモリ使用率が高すぎる
- Python プロセス内の大規模メモリオブジェクトまたは値を特定する
- 完全自動化された分析とレポート

- 問題:メモリ使用率が高すぎる
- Python プロセス内の大規模メモリオブジェクトまたは値を特定する
- 完全自動化された分析とレポート
オンラインで Python コードパスのブロッキングスレッドを迅速に特定する方法(OpenResty XRay を使用)
- 問題: CPU 使用率が上がらない
- off-CPU 時間を最も占有する Python コードパスを特定
- 完全自動化された分析とレポート

- 問題: CPU 使用率が上がらない
- off-CPU 時間を最も占有する Python コードパスを特定
- 完全自動化された分析とレポート
Java Tomcat のレスポンスが遅い:リクエスト単位の PCAP で遅いリクエストをピンポイント特定
- Tomcat のレスポンス遅延を診断、遅いリクエストをピンポイントで捕捉
- 選択的パケットキャプチャ:レスポンス時間・ステータス・パスでフィルタ
- リクエスト単位で PCAP をダウンロード
- サーバー側遅延とネットワーク遅延を切り分け
- Tomcat を内蔵した Spring Boot アプリにも対応

- Tomcat のレスポンス遅延を診断、遅いリクエストをピンポイントで捕捉
- 選択的パケットキャプチャ:レスポンス時間・ステータス・パスでフィルタ
- リクエスト単位で PCAP をダウンロード
- サーバー側遅延とネットワーク遅延を切り分け
- Tomcat を内蔵した Spring Boot アプリにも対応
Java アプリケーションプロファイリング:CPU、Off-CPU、ディスク I/O を Safepoint バイアスなしで分析
- フレームグラフで Java CPU ホットスポットをプロファイリング
- Off-CPU Java プロファイリング:ロック競合とブロッキング分析
- Java ディスク I/O プロファイリング:ファイルとソケットの書き込みを追跡
- OpenJDK 8/11/17/21 アプリケーションプロファイリング対応
- 自動サンプリングと専門家分析
- パフォーマンスへの影響とオーバーヘッド
- よくある質問

- フレームグラフで Java CPU ホットスポットをプロファイリング
- Off-CPU Java プロファイリング:ロック競合とブロッキング分析
- Java ディスク I/O プロファイリング:ファイルとソケットの書き込みを追跡
- OpenJDK 8/11/17/21 アプリケーションプロファイリング対応
- 自動サンプリングと専門家分析
- パフォーマンスへの影響とオーバーヘッド
- よくある質問
本番環境で Perl の例外をトレースする方法(再起動不要)
- Perl アプリケーションのプログラム例外を分析
- 自動生成レポート
- よくある質問

- Perl アプリケーションのプログラム例外を分析
- 自動生成レポート
- よくある質問
オンラインでブロッキングスレッドの Perl コードパスを迅速に特定する(OpenResty XRay を使用)
- 問題:CPU 使用率が上昇しない
- off-CPU 時間を最も占有している Perl コードパスを特定
- 完全自動の分析とレポート

- 問題:CPU 使用率が上昇しない
- off-CPU 時間を最も占有している Perl コードパスを特定
- 完全自動の分析とレポート
Perl アプリケーションの追跡時における OpenResty XRay のシステムパフォーマンスへの影響
- アナライザー実行前のアプリケーションパフォーマンス
- アナライザー実行中のパフォーマンスへの影響
- アナライザー実行時のスループットとレイテンシーへの実際の影響測定

- アナライザー実行前のアプリケーションパフォーマンス
- アナライザー実行中のパフォーマンスへの影響
- アナライザー実行時のスループットとレイテンシーへの実際の影響測定
Perl プロセス内の大きなメモリオブジェクトをオンラインで特定する(OpenResty XRay を使用)
- 問題: メモリ使用率が高い
- Perl プロセス内の大きなメモリオブジェクトまたは値を特定
- 自動生成レポート

- 問題: メモリ使用率が高い
- Perl プロセス内の大きなメモリオブジェクトまたは値を特定
- 自動生成レポート
オンラインで CPU 使用率が最も高い Perl コードパスを素早く特定する方法(OpenResty XRay を使用)
- 問題: 高 CPU 使用率
- 最も CPU 使用率の高い Perl コードパスを特定
- 完全自動化された分析とレポート

- 問題: 高 CPU 使用率
- 最も CPU 使用率の高い Perl コードパスを特定
- 完全自動化された分析とレポート
Rust プロセスのディスク I/O が高い原因の特定方法
- ディスク I/O が高い Rust プロセスの特定
- フレームグラフで Rust のディスク書き込みホットコードパスを追跡
- 自動ディスク I/O 分析レポート
- よくある質問

- ディスク I/O が高い Rust プロセスの特定
- フレームグラフで Rust のディスク書き込みホットコードパスを追跡
- 自動ディスク I/O 分析レポート
- よくある質問
本番環境で Rust の Panic をトレースする方法(再起動不要)
- Rust アプリケーションのプログラム例外を分析
- 完全自動化された分析レポート
- よくある質問

- Rust アプリケーションのプログラム例外を分析
- 完全自動化された分析レポート
- よくある質問
Rust アプリケーションの追跡時における OpenResty XRay のシステムパフォーマンスへの影響
- テスト環境とパフォーマンスベースライン
- システムレベルのリソース変化の観測記録
- スループットとレイテンシへの影響の精密測定

- テスト環境とパフォーマンスベースライン
- システムレベルのリソース変化の観測記録
- スループットとレイテンシへの影響の精密測定
Rust の Sled ライブラリ内部で CPU 時間がどのように消費されているか(OpenResty XRay を使用)
- 問題:高 CPU 使用率
- Rust の Sled ライブラリ内の CPU 時間消費を分析
- 完全自動化された分析とレポート

- 問題:高 CPU 使用率
- Rust の Sled ライブラリ内の CPU 時間消費を分析
- 完全自動化された分析とレポート
C++ による C++ アプリケーションの動的トレース技術
- 対象 C++ プログラムを設定
- C++(または Y++)アナライザーの作成
- 対象プログラムとアナライザーの実行
- 複雑な C++ アプリケーションのサポート強化
- デバッグシンボルについて
- 結論

- 対象 C++ プログラムを設定
- C++(または Y++)アナライザーの作成
- 対象プログラムとアナライザーの実行
- 複雑な C++ アプリケーションのサポート強化
- デバッグシンボルについて
- 結論
OpenResty XRay による Core Dump の自動分析技術
- core dump ファイルの確認
- core dump ファイルを分析
- 全自動分析とレポート作成

- core dump ファイルの確認
- core dump ファイルを分析
- 全自動分析とレポート作成
OpenResty XRay による Erlang コードの最も CPU 高負荷の部分のオンライン特定方法
- 問題:CPU の高負荷
- Erlang の CPU ホットスポットを特定
- 自動生成レポート

- 問題:CPU の高負荷
- Erlang の CPU ホットスポットを特定
- 自動生成レポート
デバッグシンボルが欠落した OpenResty/Nginx アプリケーションの分析(OpenResty XRay を使用)
- 問題:アプリケーションにデバッグシンボルが欠落
- デバッグシンボルの自動分析と再構築
- 完全自動化された分析とレポート作成

- 問題:アプリケーションにデバッグシンボルが欠落
- デバッグシンボルの自動分析と再構築
- 完全自動化された分析とレポート作成
Envoy サーバー内部での CPU 時間の消費状況(OpenResty XRay を使用)
- 問題:高 CPU 使用率
- Envoy サーバーでの CPU 時間の消費状況を分析
- 完全自動化された分析レポート

- 問題:高 CPU 使用率
- Envoy サーバーでの CPU 時間の消費状況を分析
- 完全自動化された分析レポート
OpenResty XRay を使用して HTTP 504 タイムアウトエラーを診断する方法
- 問題:HTTP 504 ゲートウェイタイムアウトエラー
- エラーの診断
- 完全自動化された分析とレポート

- 問題:HTTP 504 ゲートウェイタイムアウトエラー
- エラーの診断
- 完全自動化された分析とレポート
llama.cpp プログラムと LLaMA2 モデル内部で CPU 時間がどのように消費されているか(OpenResty XRay を使用)
- 問題: 高 CPU 使用率
- 最もホットな C++ コードパスを特定
- 完全自動化された分析とレポート

- 問題: 高 CPU 使用率
- 最もホットな C++ コードパスを特定
- 完全自動化された分析とレポート
Ylang: eBPF、Stap+、GDB などのフレームワーク向け汎用言語(第4回、全4回)
- コンテナを透過的に横断するトレース機能
- 効率的なスタックアンワインディング
- 終了したプロセスの分析(core dumps)
- 極めて低いトレーシングオーバーヘッド
- 標準 Ylang ライブラリとツール
- ネットワークフィルタリングと制御
- Ylang コンパイラの実装
- オペレーティングシステムのサポート
- オープンソースコミュニティへの貢献
- 結論
- 謝辞

- コンテナを透過的に横断するトレース機能
- 効率的なスタックアンワインディング
- 終了したプロセスの分析(core dumps)
- 極めて低いトレーシングオーバーヘッド
- 標準 Ylang ライブラリとツール
- ネットワークフィルタリングと制御
- Ylang コンパイラの実装
- オペレーティングシステムのサポート
- オープンソースコミュニティへの貢献
- 結論
- 謝辞
Ylang: eBPF、Stap+、GDB などのフレームワーク向け汎用言語(第3回、全4回)
- Ylang の文法(前回の続き)
- 文字列
- 組み込み正規表現サポート
- 完全な制御フロー機能のサポート
- 浮動小数点数のサポート
- オープンソースツールチェーンとの比較
- 明確なデバッグシンボルの手法
- デバッグシンボル:実行時のシステムオーバーヘッドなし
- 集中管理されたパッケージデータベース
- デバッグシンボルのファジーマッチング

- Ylang の文法(前回の続き)
- 文字列
- 組み込み正規表現サポート
- 完全な制御フロー機能のサポート
- 浮動小数点数のサポート
- オープンソースツールチェーンとの比較
- 明確なデバッグシンボルの手法
- デバッグシンボル:実行時のシステムオーバーヘッドなし
- 集中管理されたパッケージデータベース
- デバッグシンボルのファジーマッチング
Ylang: eBPF、Stap+、GDB などのフレームワーク向け汎用言語(第2回、全4回)
- 言語文法(前述の続き)
- マクロ拡張
- トレーサー空間とトレーシー空間
- プローブ
- 拡張変数型

- 言語文法(前述の続き)
- マクロ拡張
- トレーサー空間とトレーシー空間
- プローブ
- 拡張変数型
OpenResty XRay を使用して Linux カーネルのトレースサブシステムにおける 2 つのバグを捕捉
- ユーザー空間メモリ読み取り時のカーネルデッドロック
- カーネル内の x86 ブレークポイント挿入におけるデータ競合

- ユーザー空間メモリ読み取り時のカーネルデッドロック
- カーネル内の x86 ブレークポイント挿入におけるデータ競合
OpenResty XRay を使用してオンラインで CPU 負荷の高い Lua コードパスを素早く特定する方法
- 問題: 高 CPU 使用率
- 最も CPU 使用率の高い Lua コードパスを特定
- 完全自動化された分析とレポート

- 問題: 高 CPU 使用率
- 最も CPU 使用率の高い Lua コードパスを特定
- 完全自動化された分析とレポート
OpenResty XRay を使用して、カスタム Kong プラグインの Lua 例外による CPU ボトルネックを解決した方法
- 問題:Kong サーバーの高 CPU 使用率
- 分析とレポート
- 結果:パフォーマンスの向上と CPU 使用率の低下

- 問題:Kong サーバーの高 CPU 使用率
- 分析とレポート
- 結果:パフォーマンスの向上と CPU 使用率の低下
OpenResty XRay を使用して、オンラインの Kong サービスプロセス内のプラグインの CPU およびメモリ使用量をリアルタイムで統計化する方法
- サーバープロセス内のすべての Kong プラグインの CPU 使用状況
- サーバープロセス内のすべての Kong プラグインのメモリ使用状況
- サーバーへの追加負荷
- 今後の展開

- サーバープロセス内のすべての Kong プラグインの CPU 使用状況
- サーバープロセス内のすべての Kong プラグインのメモリ使用状況
- サーバーへの追加負荷
- 今後の展開
Ylang: eBPF、Stap+、GDB などのフレームワーク向け汎用言語(第1回、全4回)
- 動的トレーシングとは
- なぜ「Y」と名付けたのか
- はじめに
- 各種バックエンドとランタイム
- なぜ統一されたフロントエンド言語が必要なのか
- 言語の構文
- 続く

- 動的トレーシングとは
- なぜ「Y」と名付けたのか
- はじめに
- 各種バックエンドとランタイム
- なぜ統一されたフロントエンド言語が必要なのか
- 言語の構文
- 続く
オンラインリクエストの 200ms 追加遅延の自動診断
- 課題
- 分析プロセス
- 完全自動化された分析
- OpenResty XRay とは

- 課題
- 分析プロセス
- 完全自動化された分析
- OpenResty XRay とは
OpenResty XRay のコマンドラインツールを使用してメモリリークしている Lua テーブルを特定する
- LuaJIT のメモリ管理方法
- OpenResty XRay のコマンドラインツール
- リークの例
- 分析プロセス
- lj-gco-ref アナライザ
- 完全自動分析

- LuaJIT のメモリ管理方法
- OpenResty XRay のコマンドラインツール
- リークの例
- 分析プロセス
- lj-gco-ref アナライザ
- 完全自動分析
YSQL 言語を使用した Nginx プロセスのリアルタイムリクエスト数カウント
- run-ysql ツールのインストール方法
- リアルタイムの総リクエスト数の統計
- 特定のリクエストのフィルタリング
- Web コンソールでの YSQL の使用
- 真の非侵襲的トレーシング

- run-ysql ツールのインストール方法
- リアルタイムの総リクエスト数の統計
- 特定のリクエストのフィルタリング
- Web コンソールでの YSQL の使用
- 真の非侵襲的トレーシング
- 問題点
- 分析
- 解決策
- 結果
巨大な Nginx 設定による メモリフラグメンテーションの最適化
- 課題
- 分析
- 解決策
- 結果

- 課題
- 分析
- 解決策
- 結果
OpenResty または Nginx プロセスにおける読み込み済み Lua モジュールの一覧表示
- システム環境
- 読み込み済み Lua モジュールの名前
- Web コンソールで直接実行
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド

- システム環境
- 読み込み済み Lua モジュールの名前
- Web コンソールで直接実行
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド
OpenResty または Nginx における最も CPU を消費するリクエストの分析
- システム環境
- CPU 使用率が最も高いリクエストのホスト名
- CPU 使用率が最も高いリクエストの URI
- さらに深く掘り下げる
- Web コンソールで直接実行する
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド

- システム環境
- CPU 使用率が最も高いリクエストのホスト名
- CPU 使用率が最も高いリクエストの URI
- さらに深く掘り下げる
- Web コンソールで直接実行する
- コンテナ内のアプリケーションのトレース
- ツールの実装方法
- ツールのオーバーヘッド
メモリ使用量が 60% 削減、OpenResty XRay で問題コードを正確に特定し、迅速に修正・デプロイを実現
- worker プロセスのメモリ使用量が高い問題について
- OpenResty XRay による分析プロセス
- worker プロセスのメモリが解放されない疑問について

- worker プロセスのメモリ使用量が高い問題について
- OpenResty XRay による分析プロセス
- worker プロセスのメモリが解放されない疑問について
Lua レベル CPU フレームグラフの概要
- フレームグラフとは何か
- 簡単な Lua の例
- 複雑な Lua アプリケーション
- サンプリングのオーバーヘッド
- セキュリティ
- 互換性
- その他の種類の Lua レベルフレームグラフ

- フレームグラフとは何か
- 簡単な Lua の例
- 複雑な Lua アプリケーション
- サンプリングのオーバーヘッド
- セキュリティ
- 互換性
- その他の種類の Lua レベルフレームグラフ
OpenResty と Nginx の共有メモリ領域におけるメモリフラグメンテーションの問題
- 空の共有メモリ領域
- 類似サイズのエントリで埋める
- 奇数キーの削除
- 前半部分のキーの削除
- メモリフラグメンテーションの緩和

- 空の共有メモリ領域
- 類似サイズのエントリで埋める
- 奇数キーの削除
- 前半部分のキーの削除
- メモリフラグメンテーションの緩和
OpenResty と Nginx の共有メモリ領域が物理メモリをどのように消費するか
- Slab とメモリページ
- 割り当てられたメモリが必ずしも消費されるわけではない
- 偽のメモリリーク
- HUP による再読み込み

- Slab とメモリページ
- 割り当てられたメモリが必ずしも消費されるわけではない
- 偽のメモリリーク
- HUP による再読み込み
OpenResty と Nginx のメモリ割り当てと管理方法
- Nginx のメモリ使用量を確認する方法
- システムレベル
- アプリケーションレベル
- 従来の Nginx サーバー
- FAQ: Nginx はどれだけのメモリを必要とするか

- Nginx のメモリ使用量を確認する方法
- システムレベル
- アプリケーションレベル
- 従来の Nginx サーバー
- FAQ: Nginx はどれだけのメモリを必要とするか
LuaJIT GC64 モード
- 旧メモリ制限
- このメモリ制限に遭遇する時期
- メモリ制限はプロセスごと
- GC が管理するメモリ
- GC が管理しないメモリ
- x64 モードのメモリ上限を 4 GB に引き上げる
- 新しい GC64 モード
- GC64 モードの有効化方法
- パフォーマンスへの影響
- デバッグ分析ツールチェーン

- 旧メモリ制限
- このメモリ制限に遭遇する時期
- メモリ制限はプロセスごと
- GC が管理するメモリ
- GC が管理しないメモリ
- x64 モードのメモリ上限を 4 GB に引き上げる
- 新しい GC64 モード
- GC64 モードの有効化方法
- パフォーマンスへの影響
- デバッグ分析ツールチェーン


