精选文章

Photo by Philip Brown

動的トレーシング技術概説

動的トレーシング技術概説

Photo by OpenResty Inc.

OpenResty XRay による ビリビリ動画の重大なオンライン障害の分析と解決

OpenResty XRay による ビリビリ動画の重大なオンライン障害の分析と解決

バイナリ脆弱性スキャン:バックポート済みパッチを検知し、誤検知を削減

バイナリ脆弱性スキャン:バックポート済みパッチを検知し、誤検知を削減

バイナリ脆弱性スキャン:バックポート済みパッチを検知し、誤検知を削減

OpenResty XRay 入門:コードを変更せずに、システム深層の「鼓動」を聴く

OpenResty XRay 入門:コードを変更せずに、システム深層の「鼓動」を聴く

OpenResty XRay 入門:コードを変更せずに、システム深層の「鼓動」を聴く

OpenResty XRay で 15 倍の QPS 差を解決した事例

OpenResty XRay で 15 倍の QPS 差を解決した事例

OpenResty XRay で 15 倍の QPS 差を解決した事例

非侵入型 Java プロファイラ:Java Agent なしで本番環境のメソッド引数をキャプチャ

非侵入型 Java プロファイラ:Java Agent なしで本番環境のメソッド引数をキャプチャ

非侵入型 Java プロファイラ:Java Agent なしで本番環境のメソッド引数をキャプチャ

Photo by Jose G. Ortega Castro

OpenResty と Nginx の共有メモリ領域が物理メモリをどのように消費するか

OpenResty と Nginx の共有メモリ領域が物理メモリをどのように消費するか

Photo by Harrison Broadbent

OpenResty と Nginx のメモリ割り当てと管理方法

OpenResty と Nginx のメモリ割り当てと管理方法

OpenResty XRay で、パフォーマンスを大幅に向上し、CPU使用率を即座に削減  90%
OpenResty XRay で、パフォーマンスを大幅に向上し、CPU使用率を即座に削減 90%
無料トライアルを申し込む

最新記事

CentOS 上に OpenResty XRay の Agent をインストールする方法(RPM パッケージリポジトリを使用)

  • コンソールにログイン
  • RPM パッケージリポジトリを使用した Agent のインストール
  • 检查 Agent 状态和日志
  • アプリケーションの設定と検出
  • アナライザーの起動と分析結果の確認
  • 別の Agent のインストール
  • コンソールにログイン
  • RPM パッケージリポジトリを使用した Agent のインストール
  • 检查 Agent 状态和日志
  • アプリケーションの設定と検出
  • アナライザーの起動と分析結果の確認
  • 別の Agent のインストール

Python メモリプロファイラ:コード変更なしで最も RAM を消費するオブジェクトを特定する

  • どの Python プロセスが最もメモリを消費しているかを特定する
  • ガイド分析で Python メモリをプロファイリングし、最大のオブジェクトとそのモジュールを特定する
  • 定期レポートで Python のメモリ使用量を自動監視する
  • OpenResty XRay について
  • どの Python プロセスが最もメモリを消費しているかを特定する
  • ガイド分析で Python メモリをプロファイリングし、最大のオブジェクトとそのモジュールを特定する
  • 定期レポートで Python のメモリ使用量を自動監視する
  • OpenResty XRay について

llama.cpp プログラムと LLaMA2 モデル内部で CPU 時間がどのように消費されているか(OpenResty XRay を使用)

  • 問題: 高 CPU 使用率
  • 最もホットな C++ コードパスを特定
  • 完全自動化された分析とレポート
  • 問題: 高 CPU 使用率
  • 最もホットな C++ コードパスを特定
  • 完全自動化された分析とレポート

Ylang実践編:コンテナトレース、スタック展開とCore Dump分析(第4回、全4回)

  • コンテナを透過的に横断するトレース機能
    • 効率的なスタックアンワインディング
    • 終了したプロセスの分析(core dumps)
    • 極めて低いトレーシングオーバーヘッド
    • 標準 Ylang ライブラリとツール
    • ネットワークフィルタリングと制御
    • Ylang コンパイラの実装
    • オペレーティングシステムのサポート
    • オープンソースコミュニティへの貢献
    • 結論
    • 謝辞
Photo by 章亦春
  • コンテナを透過的に横断するトレース機能
    • 効率的なスタックアンワインディング
    • 終了したプロセスの分析(core dumps)
    • 極めて低いトレーシングオーバーヘッド
    • 標準 Ylang ライブラリとツール
    • ネットワークフィルタリングと制御
    • Ylang コンパイラの実装
    • オペレーティングシステムのサポート
    • オープンソースコミュニティへの貢献
    • 結論
    • 謝辞

オンラインで Go コードパスのブロッキングスレッドを迅速に特定する方法(OpenResty XRay を使用)

  • 問題: CPU 使用率が上がらない
  • off-CPU 時間を最も占有する Go コードパスを特定
  • 完全自動化された分析とレポート
  • 問題: CPU 使用率が上がらない
  • off-CPU 時間を最も占有する Go コードパスを特定
  • 完全自動化された分析とレポート

Ylang:正規表現、完全な制御フローと透過的デバッグシンボル処理(第3回、全4回)

  • Ylang の文法(前回の続き)
    • 文字列
    • 組み込み正規表現サポート
    • 完全な制御フロー機能のサポート
    • 浮動小数点数のサポート
    • オープンソースツールチェーンとの比較
  • 透過的なデバッグシンボル処理
    • デバッグシンボル:実行時のシステムオーバーヘッドなし
    • 集中管理されたパッケージデータベース
    • デバッグシンボルのファジーマッチング
Photo by 章亦春
  • Ylang の文法(前回の続き)
    • 文字列
    • 組み込み正規表現サポート
    • 完全な制御フロー機能のサポート
    • 浮動小数点数のサポート
    • オープンソースツールチェーンとの比較
  • 透過的なデバッグシンボル処理
    • デバッグシンボル:実行時のシステムオーバーヘッドなし
    • 集中管理されたパッケージデータベース
    • デバッグシンボルのファジーマッチング

オンラインで Python コードパスのブロッキングスレッドを迅速に特定する方法(OpenResty XRay を使用)

  • 問題: CPU 使用率が上がらない
  • off-CPU 時間を最も占有する Python コードパスを特定
  • 完全自動化された分析とレポート
  • 問題: CPU 使用率が上がらない
  • off-CPU 時間を最も占有する Python コードパスを特定
  • 完全自動化された分析とレポート

OpenResty XRay を使用して Linux カーネルのトレースサブシステムにおける 2 つのバグを捕捉

  • ユーザー空間メモリ読み取り時のカーネルデッドロック
  • カーネル内の x86 ブレークポイント挿入におけるデータ競合
  • ユーザー空間メモリ読み取り時のカーネルデッドロック
  • カーネル内の x86 ブレークポイント挿入におけるデータ競合

オンラインで CPU 使用率が最も高い Perl コードパスを素早く特定する方法(OpenResty XRay を使用)

  • 問題: 高 CPU 使用率
  • OpenResty XRay のガイド付き分析機能を使用して最も CPU 使用率の高い Perl コードパスを特定
  • 自動分析とレポート
  • OpenResty XRay について
  • 問題: 高 CPU 使用率
  • OpenResty XRay のガイド付き分析機能を使用して最も CPU 使用率の高い Perl コードパスを特定
  • 自動分析とレポート
  • OpenResty XRay について

OpenResty XRay を使用して、カスタム Kong プラグインの Lua 例外による CPU ボトルネックを解決した方法

  • 問題:Kong サーバーの高 CPU 使用率
  • 分析とレポート
  • 結果:パフォーマンスの向上と CPU 使用率の低下
Photo by 章亦春
  • 問題:Kong サーバーの高 CPU 使用率
  • 分析とレポート
  • 結果:パフォーマンスの向上と CPU 使用率の低下

OpenResty XRay を使用して、オンラインの Kong サービスプロセス内のプラグインの CPU およびメモリ使用量をリアルタイムで統計化する方法

  • サーバープロセス内のすべての Kong プラグインの CPU 使用状況
  • サーバープロセス内のすべての Kong プラグインのメモリ使用状況
  • サーバーへの追加負荷
  • 今後の展開
Photo by 章亦春
  • サーバープロセス内のすべての Kong プラグインの CPU 使用状況
  • サーバープロセス内のすべての Kong プラグインのメモリ使用状況
  • サーバーへの追加負荷
  • 今後の展開

Ylang: eBPF、SystemTap、GDB などのフレームワーク向け動的トレーシング言語(第1回、全4回)

  • 動的トレーシングとは
  • なぜ「Y」と名付けたのか
  • Ylang 入門
  • 動的トレーシングバックエンド:eBPF+、Stap+、GDB、ODB
  • なぜ動的トレーシングに統一されたフロントエンド言語が必要なのか
  • Ylang の構文:C との真の互換性
  • よくある質問
Photo by 章亦春
  • 動的トレーシングとは
  • なぜ「Y」と名付けたのか
  • Ylang 入門
  • 動的トレーシングバックエンド:eBPF+、Stap+、GDB、ODB
  • なぜ動的トレーシングに統一されたフロントエンド言語が必要なのか
  • Ylang の構文:C との真の互換性
  • よくある質問

リークした Lua テーブルを特定する:registry / _LOADED(package.loaded)参照パス · OpenResty XRay

  • LuaJIT のメモリ管理方法
  • OpenResty XRay のコマンドラインツール
  • Lua テーブルのリーク例
  • LuaJIT GC オブジェクト種別ごとのメモリ内訳
  • lj-gco-ref フレームグラフの読み方:registry、_LOADED、package.loaded
  • 完全自動の Lua メモリリーク分析
  • LuaJIT のメモリ管理方法
  • OpenResty XRay のコマンドラインツール
  • Lua テーブルのリーク例
  • LuaJIT GC オブジェクト種別ごとのメモリ内訳
  • lj-gco-ref フレームグラフの読み方:registry、_LOADED、package.loaded
  • 完全自動の Lua メモリリーク分析

YSQL 言語を使用した Nginx プロセスのリアルタイムリクエスト数カウント

  • run-ysql ツールのインストール方法
  • リアルタイムの総リクエスト数の統計
  • 特定のリクエストのフィルタリング
  • Web コンソールでの YSQL の使用
  • 真の非侵襲的トレーシング
Photo by 章亦春
  • run-ysql ツールのインストール方法
  • リアルタイムの総リクエスト数の統計
  • 特定のリクエストのフィルタリング
  • Web コンソールでの YSQL の使用
  • 真の非侵襲的トレーシング

OpenResty XRay AI アシスタント:すべての分析データに語らせる

  • 「レポートを ChatGPT に貼り付ける」のと何が違うのか?
  • 3 つの典型的なシナリオ
  • よくある質問:AI は本当にフレームグラフを読めるのか?どこまで信頼できるのか?
  • 「レポートを ChatGPT に貼り付ける」のと何が違うのか?
  • 3 つの典型的なシナリオ
  • よくある質問:AI は本当にフレームグラフを読めるのか?どこまで信頼できるのか?

コード変更・サービス再起動なし:OpenResty XRay による本番環境での動的トレーシング実践法

  • 既存の動的トレーシングフレームワークが本番環境で抱える限界と課題とは?
  • OpenResty XRay が動的トレーシングのアーキテクチャ設計で実現した技術的革新とは?
  • フルスタックフレームグラフとは何か?
  • OpenResty XRay の対応範囲はどのように継続的に広がっているか?
  • 既存の動的トレーシングフレームワークが本番環境で抱える限界と課題とは?
  • OpenResty XRay が動的トレーシングのアーキテクチャ設計で実現した技術的革新とは?
  • フルスタックフレームグラフとは何か?
  • OpenResty XRay の対応範囲はどのように継続的に広がっているか?

OpenResty XRay 入門:コードを変更せずに、システム深層の「鼓動」を聴く

  • OpenResty XRay が実現する究極の可観測性基盤
  • シグナルからインサイトへ
  • 次世代のクラウドネイティブ・エンジニアリング
  • オープンなエコシステムと堅牢な技術基盤
  • OpenResty XRay が実現する究極の可観測性基盤
  • シグナルからインサイトへ
  • 次世代のクラウドネイティブ・エンジニアリング
  • オープンなエコシステムと堅牢な技術基盤

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

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

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 は性能ボトルネックの「根本原因」をどう特定するか
  • 性能ボトルネックの定量的な真実
  • 経験から方法論へ

C++ プロセスにおけるメモリリークを OpenResty XRay で迅速に特定する方法

  • 技術的な課題と初期診断
  • フレームグラフで特定!メモリリークの「ホットスポット」
  • 受動的な対応から能動的な支援へ:XRay が実現するトラブルシューティングの新たなサイクル
  • まとめ
Photo by 章亦春
  • 技術的な課題と初期診断
  • フレームグラフで特定!メモリリークの「ホットスポット」
  • 受動的な対応から能動的な支援へ:XRay が実現するトラブルシューティングの新たなサイクル
  • まとめ

非侵入型 Java プロファイラ:Java Agent なしで本番環境のメソッド引数をキャプチャ

  • なぜ非侵入型 Java プロファイリングが本番環境で重要なのか
  • 実践デモ:本番環境で Java メソッド引数をキャプチャ
  • OpenResty XRay と一般的な Java プロファイラの違い
  • よくある質問
  • なぜ非侵入型 Java プロファイリングが本番環境で重要なのか
  • 実践デモ:本番環境で Java メソッド引数をキャプチャ
  • OpenResty XRay と一般的な Java プロファイラの違い
  • よくある質問

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 パフォーマンスの悪夢に終止符を打つ

オンライン Node.js アプリケーションの CPU 使用状況分析(OpenResty XRay を使用)

  • Node.js アプリケーションにおける高 CPU 使用率の問題
  • Node.js アプリケーションにおける CPU ブロッキングの問題
  • サポートされている Node.js バージョンとオペレーティングシステム
  • 自動サンプリングと専門家による分析
  • パフォーマンスへの影響と追加負荷
  • 今後の計画
Photo by Yichun Zhang
  • Node.js アプリケーションにおける高 CPU 使用率の問題
  • Node.js アプリケーションにおける CPU ブロッキングの問題
  • サポートされている Node.js バージョンとオペレーティングシステム
  • 自動サンプリングと専門家による分析
  • パフォーマンスへの影響と追加負荷
  • 今後の計画

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

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

UDB + OpenResty XRay:OpenResty アプリケーションのパフォーマンスの謎を解き明かす

  • OpenResty XRay と UDB の連携による効率化
  • 実践:UDB と OpenResty XRay を用いた OpenResty アプリケーションにおける Lua コード呼び出しスタックの分析
  • 時間遡行デバッグの利点
  • まとめ
Photo by 章亦春
  • OpenResty XRay と UDB の連携による効率化
  • 実践:UDB と OpenResty XRay を用いた OpenResty アプリケーションにおける Lua コード呼び出しスタックの分析
  • 時間遡行デバッグの利点
  • まとめ

UDB と OpenResty XRay による Perl コード実行全プロセスの可視化

  • UDB とは?
  • 実践:OpenResty XRay と UDB を使用した Perl アプリケーションのコードコールスタック分析
  • なぜ、より多くの開発者が UDB を選択するのでしょうか?
  • まとめ
Photo by 章亦春
  • UDB とは?
  • 実践:OpenResty XRay と UDB を使用した Perl アプリケーションのコードコールスタック分析
  • なぜ、より多くの開発者が UDB を選択するのでしょうか?
  • まとめ

Java ファイル I/O をタイムトラベルコールスタックでデバッグする方法

  • Java ファイル I/O における IDE ブレークポイントと coredump の限界
  • Native write() システムコールからの完全な Java コールスタック再構築
  • タイムトラベル再生による Java ファイル I/O の段階的デバッグ
  • よくある質問
Photo by 章亦春
  • Java ファイル I/O における IDE ブレークポイントと coredump の限界
  • Native write() システムコールからの完全な Java コールスタック再構築
  • タイムトラベル再生による Java ファイル I/O の段階的デバッグ
  • よくある質問

UDB のタイムトラベル機能を活用し、Python コードの実行プロセスを解明

  • Python デバッグにおける UDB の独自の価値
  • OpenResty XRay との連携によるデバッグ能力の強化
  • 実践事例:Python のネットワークリクエストにおけるコールスタックの分析
  • まとめ
Photo by 章亦春
  • Python デバッグにおける UDB の独自の価値
  • OpenResty XRay との連携によるデバッグ能力の強化
  • 実践事例:Python のネットワークリクエストにおけるコールスタックの分析
  • まとめ

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

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

実戦レポート!OpenResty XRay で DNS 性能を 60% 向上させた徹底解析

  • 「ライフライン」DNS サービスがパフォーマンス危機に直面
  • OpenResty XRay で問題の根本原因を段階的に調査する方法
  • 精密な「治療」:三段階で再生を実現
  • 要約:わずか数分で達成したこと
Photo by 章亦春
  • 「ライフライン」DNS サービスがパフォーマンス危機に直面
  • OpenResty XRay で問題の根本原因を段階的に調査する方法
  • 精密な「治療」:三段階で再生を実現
  • 要約:わずか数分で達成したこと

動的トレースの万能ツール:Y 言語が動的トレースを簡単にする方法

  • モダンソフトウェアアーキテクチャにおける問題解決がますます難しくなっている理由
  • 可観測性技術の進化と将来展望
  • 動的トレース技術はどのように抽象化レイヤーを通過するのか?
  • 「時間+空間」二次元トラッキングモデル
  • 実践事例:オンライン Kong サービスにおけるプラグインリソース消費のリアルタイム統計
Photo by 章亦春
  • モダンソフトウェアアーキテクチャにおける問題解決がますます難しくなっている理由
  • 可観測性技術の進化と将来展望
  • 動的トレース技術はどのように抽象化レイヤーを通過するのか?
  • 「時間+空間」二次元トラッキングモデル
  • 実践事例:オンライン Kong サービスにおけるプラグインリソース消費のリアルタイム統計

OpenResty XRay の画期的なアップデート:Java アプリケーションのメモリと Envoy Lua のパフォーマンスを非侵入で分析

  • 非侵入で、Java アプリケーションのメモリを徹底解明
  • Envoy 内の Lua パフォーマンス・ブラックボックスを初めて解明
  • 挑戦は続いています
Photo by 章亦春
  • 非侵入で、Java アプリケーションのメモリを徹底解明
  • Envoy 内の Lua パフォーマンス・ブラックボックスを初めて解明
  • 挑戦は続いています

動的トレーシング技術の深層:OpenResty XRay がどのように問題診断方法を根本的に変革するか

  • 動的トレーシング:複雑なシステム問題を解決する強力なツール
  • なぜ OpenResty XRay をお選びいただくべきか?
  • 製品フォーカス:実際のシナリオにおける XRay の適用事例
  • よくある誤解と FAQ:動的トレースについて知っておきたいこと
Photo by 章亦春
  • 動的トレーシング:複雑なシステム問題を解決する強力なツール
  • なぜ OpenResty XRay をお選びいただくべきか?
  • 製品フォーカス:実際のシナリオにおける XRay の適用事例
  • よくある誤解と FAQ:動的トレースについて知っておきたいこと

動的トレーシングの実装が難しい理由とは?OpenResty XRay はどのようにこの課題を解決するのか?

  • 動的トレース技術の実装における課題
  • OpenResty XRay:次世代動的トレーシングソリューション
  • 結語:動的トレースの未来
Photo by 章亦春
  • 動的トレース技術の実装における課題
  • OpenResty XRay:次世代動的トレーシングソリューション
  • 結語:動的トレースの未来

ログ、イベントトラッキング、A/B テストだけでは不十分?「動的トレーシング」を理解すべき時期

  • 従来の方法 vs 動的トレーシング:効率性と制御力の革命
  • 動的トレース:システムの「透視眼」
  • フレームグラフからシステム全体像へ
  • OpenResty XRay を選ぶ理由
  • 可観測性の未来:動的トレースの新境地
Photo by 章亦春
  • 従来の方法 vs 動的トレーシング:効率性と制御力の革命
  • 動的トレース:システムの「透視眼」
  • フレームグラフからシステム全体像へ
  • OpenResty XRay を選ぶ理由
  • 可観測性の未来:動的トレースの新境地

可観測性の次なる段階:OpenResty XRay が問題解決を再定義する方法

  • モダンソフトウェアアーキテクチャにおける問題解決がますます難しくなっている理由
  • 可観測性技術の進化と将来展望
  • 動的トレース技術はどのように抽象化レイヤーを通過するのか?
  • 「時間+空間」二次元トラッキングモデル
  • 実践事例:オンライン Kong サービスにおけるプラグインリソース消費のリアルタイム統計
Photo by 章亦春
  • モダンソフトウェアアーキテクチャにおける問題解決がますます難しくなっている理由
  • 可観測性技術の進化と将来展望
  • 動的トレース技術はどのように抽象化レイヤーを通過するのか?
  • 「時間+空間」二次元トラッキングモデル
  • 実践事例:オンライン Kong サービスにおけるプラグインリソース消費のリアルタイム統計

ブラックボックスからホワイトボックスへ:OpenResty XRay でシステム問題を可視化する

  • ブラックボックスをホワイトボックスに変える動的トレースツール
  • 多角的な総合分析能力
  • 実例紹介
  • 製品ビジョン
Photo by 章亦春
  • ブラックボックスをホワイトボックスに変える動的トレースツール
  • 多角的な総合分析能力
  • 実例紹介
  • 製品ビジョン

自己最適化:OpenResty XRay の性能変革

  • 課題と痛点
  • OpenResty XRay の自己分析プロセス
  • 驚くべき最適化の成果
  • 技術的洞察とビジネス価値
Photo by 章亦春
  • 課題と痛点
  • OpenResty XRay の自己分析プロセス
  • 驚くべき最適化の成果
  • 技術的洞察とビジネス価値

OpenResty XRay によるスクリプトパフォーマンスの 44 倍向上

  • 実例:ボトルネックの発見から大幅な高速化まで
  • OpenResty XRay の動作原理
  • 最適化の効果
  • 適用シナリオと実践的なアドバイス
Photo by 章亦春
  • 実例:ボトルネックの発見から大幅な高速化まで
  • OpenResty XRay の動作原理
  • 最適化の効果
  • 適用シナリオと実践的なアドバイス

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 製品のための「よくある質問」ドキュメントを作成
Photo by Yichun Zhang
OpenResty XRay 製品のための「よくある質問」ドキュメントを作成

OpenResty または Nginx プロセスにおける最も遅い PCRE 正規表現のトレース

  • システム環境
  • 推測せずに原因を絞り込む
  • PCRE の実行オーバーヘッドの制限
  • バックトラッキングを行わない正規表現エンジン
  • Lua の組み込みパターン
  • コンテナ内のアプリケーションのトレース
  • ツールの実装方法
  • ツールのオーバーヘッド
  • システム環境
  • 推測せずに原因を絞り込む
  • PCRE の実行オーバーヘッドの制限
  • バックトラッキングを行わない正規表現エンジン
  • Lua の組み込みパターン
  • コンテナ内のアプリケーションのトレース
  • ツールの実装方法
  • ツールのオーバーヘッド

動的トレーシング技術概説

  • 動的トレーシングとは
  • 動的トレーシングの利点
  • DTrace と SystemTap
  • SystemTap の実運用での活用
  • フレームグラフ
  • 方法論
  • 知識は力なり
  • オープンソースとデバッグシンボル
  • Linux カーネルのサポート
  • ハードウェアトレーシング
  • 終了プロセスの解析
  • 従来のデバッグ技術
  • 混沌としたデバッグの世界
  • OpenResty XRay
Photo by Philip Brown
  • 動的トレーシングとは
  • 動的トレーシングの利点
  • 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 分析レポート
  • よくある質問

OpenResty XRay を使用して Prometheus アプリケーション内の CPU 使用率が最も高い Go コードパスを特定する

  • 問題:高 CPU 使用率
  • CPU 使用率が最も高い Go コードパスを特定
  • 完全自動化された分析とレポート
  • 問題:高 CPU 使用率
  • CPU 使用率が最も高い Go コードパスを特定
  • 完全自動化された分析とレポート

CockroachDB における CPU 時間の消費状況(OpenResty XRay を使用)

  • 問題:高 CPU 使用率
  • OpenResty XRay の Guided Analysis 機能を使って CockroachDB の CPU 時間消費が最も多い Go コードパスを特定する
  • 完全自動化された分析レポート
  • OpenResty XRay について
  • 問題:高 CPU 使用率
  • OpenResty XRay の Guided Analysis 機能を使って CockroachDB の CPU 時間消費が最も多い Go コードパスを特定する
  • 完全自動化された分析レポート
  • OpenResty XRay について

Go アプリケーションの追跡時における OpenResty XRay のシステムパフォーマンスへの影響

  • アナライザー実行前のアプリケーションパフォーマンス
  • アナライザー実行中のパフォーマンスへの影響
  • アナライザー実行時のスループットとレイテンシーへの実際の影響測定
  • アナライザー実行前のアプリケーションパフォーマンス
  • アナライザー実行中のパフォーマンスへの影響
  • アナライザー実行時のスループットとレイテンシーへの実際の影響測定

カスタム Ylang アナライザーを作成して Go プログラムを動的にトレースする(OpenResty XRay を使用)

  • Go 変数に 2 つのキーと値のペアを挿入
  • カスタム Ylang アナライザーを作成して Go プログラムを動的にトレース
  • テスト結果
  • Go 変数に 2 つのキーと値のペアを挿入
  • カスタム Ylang アナライザーを作成して Go プログラムを動的にトレース
  • テスト結果

オンラインで Go コードパスのブロッキングスレッドを迅速に特定する方法(OpenResty XRay を使用)

  • 問題: CPU 使用率が上がらない
  • off-CPU 時間を最も占有する Go コードパスを特定
  • 完全自動化された分析とレポート
  • 問題: CPU 使用率が上がらない
  • off-CPU 時間を最も占有する Go コードパスを特定
  • 完全自動化された分析とレポート

XRay で Python アプリケーションのディスク I/O 高負荷を診断

  • ディスク I/O が高い Python プロセスの特定
  • フレームグラフで Python のディスク読み書きコードパスを追跡
  • 自動ディスク I/O 分析レポート
  • よくある質問
  • ディスク I/O が高い Python プロセスの特定
  • フレームグラフで Python のディスク読み書きコードパスを追跡
  • 自動ディスク I/O 分析レポート
  • よくある質問

Python アプリケーションの追跡時における OpenResty XRay のシステムパフォーマンスへの影響

  • アナライザー実行前のアプリケーションパフォーマンス
  • アナライザー実行中のパフォーマンスへの影響
  • アナライザー実行時のスループットとレイテンシーへの実際の影響測定
  • アナライザー実行前のアプリケーションパフォーマンス
  • アナライザー実行中のパフォーマンスへの影響
  • アナライザー実行時のスループットとレイテンシーへの実際の影響測定

Django メモリプロファイラ:稼働中アプリのメモリ使用状況をオブジェクト単位で分析する

  • ps で高メモリの Django プロセスを見つける
  • Guided Analysis で Django アプリのメモリ使用状況をプロファイリングする
  • フレームグラフを読む:どの Python モジュールが最もメモリを使っているか
  • Insights で Django のメモリ使用状況を自動監視する
  • OpenResty XRay とは
  • ps で高メモリの Django プロセスを見つける
  • Guided Analysis で Django アプリのメモリ使用状況をプロファイリングする
  • フレームグラフを読む:どの Python モジュールが最もメモリを使っているか
  • Insights で Django のメモリ使用状況を自動監視する
  • OpenResty XRay とは

Python メモリプロファイラ:コード変更なしで最も RAM を消費するオブジェクトを特定する

  • どの Python プロセスが最もメモリを消費しているかを特定する
  • ガイド分析で Python メモリをプロファイリングし、最大のオブジェクトとそのモジュールを特定する
  • 定期レポートで Python のメモリ使用量を自動監視する
  • OpenResty XRay について
  • どの Python プロセスが最もメモリを消費しているかを特定する
  • ガイド分析で Python メモリをプロファイリングし、最大のオブジェクトとそのモジュールを特定する
  • 定期レポートで Python のメモリ使用量を自動監視する
  • OpenResty XRay について

オンラインで Python コードパスのブロッキングスレッドを迅速に特定する方法(OpenResty XRay を使用)

  • 問題: CPU 使用率が上がらない
  • off-CPU 時間を最も占有する Python コードパスを特定
  • 完全自動化された分析とレポート
  • 問題: CPU 使用率が上がらない
  • off-CPU 時間を最も占有する Python コードパスを特定
  • 完全自動化された分析とレポート

Java Tomcat のレスポンスが遅い:リクエスト単位の PCAP で遅いリクエストをピンポイント特定

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

オンラインでブロッキングスレッドの Perl コードパスを迅速に特定する(OpenResty XRay を使用)

  • 問題:CPU 使用率が上昇しない
  • off-CPU 時間を最も占有している Perl コードパスを特定
  • 完全自動の分析とレポート
  • 問題:CPU 使用率が上昇しない
  • off-CPU 時間を最も占有している Perl コードパスを特定
  • 完全自動の分析とレポート

Perl アプリケーションの追跡時における OpenResty XRay のシステムパフォーマンスへの影響

  • アナライザー実行前のアプリケーションパフォーマンス
  • アナライザー実行中のパフォーマンスへの影響
  • アナライザー実行時のスループットとレイテンシーへの実際の影響測定
  • アナライザー実行前のアプリケーションパフォーマンス
  • アナライザー実行中のパフォーマンスへの影響
  • アナライザー実行時のスループットとレイテンシーへの実際の影響測定

Perl プロセス内で最大のメモリオブジェクトを特定する

  • 症状: top で Perl プロセスのメモリ使用率が高い
  • OpenResty XRay の Guided Analysis で最大の Perl オブジェクトを特定する
  • 最大のオブジェクトをソースファイルまで追跡する
  • Insights レポートで Perl プロセスのメモリを自動監視する
  • よくある質問(FAQ)
  • OpenResty XRay について
  • 症状: top で Perl プロセスのメモリ使用率が高い
  • OpenResty XRay の Guided Analysis で最大の Perl オブジェクトを特定する
  • 最大のオブジェクトをソースファイルまで追跡する
  • Insights レポートで Perl プロセスのメモリを自動監視する
  • よくある質問(FAQ)
  • OpenResty XRay について

オンラインで CPU 使用率が最も高い Perl コードパスを素早く特定する方法(OpenResty XRay を使用)

  • 問題: 高 CPU 使用率
  • OpenResty XRay のガイド付き分析機能を使用して最も CPU 使用率の高い Perl コードパスを特定
  • 自動分析とレポート
  • OpenResty XRay について
  • 問題: 高 CPU 使用率
  • OpenResty XRay のガイド付き分析機能を使用して最も CPU 使用率の高い Perl コードパスを特定
  • 自動分析とレポート
  • OpenResty XRay について

Rust プロセスのディスク I/O が高い原因の特定方法

  • ディスク I/O が高い Rust プロセスの特定
  • フレームグラフで Rust のディスク書き込みホットコードパスを追跡
  • 自動ディスク I/O 分析レポート
  • よくある質問
  • ディスク I/O が高い Rust プロセスの特定
  • フレームグラフで Rust のディスク書き込みホットコードパスを追跡
  • 自動ディスク I/O 分析レポート
  • よくある質問

Rust アプリケーションの追跡時における OpenResty XRay のシステムパフォーマンスへの影響

  • テスト環境とパフォーマンスベースライン
  • システムレベルのリソース変化の観測記録
  • スループットとレイテンシへの影響の精密測定
  • テスト環境とパフォーマンスベースライン
  • システムレベルのリソース変化の観測記録
  • スループットとレイテンシへの影響の精密測定

C++ による C++ アプリケーションの動的トレーシング技術

  • 対象 C++ プログラムを設定
  • C++(または Y++)アナライザーの作成
  • 対象プログラムとアナライザーの実行
  • 複雑な C++ アプリケーションのサポート強化
  • デバッグシンボルについて
  • 結論
Photo by 章亦春
  • 対象 C++ プログラムを設定
  • C++(または Y++)アナライザーの作成
  • 対象プログラムとアナライザーの実行
  • 複雑な C++ アプリケーションのサポート強化
  • デバッグシンボルについて
  • 結論

OpenResty XRay による Core Dump の自動分析技術

  • クラッシュした OpenResty/Nginx worker の core dump ファイルの場所を特定する
  • OpenResty XRay で自動(ガイド付き)core dump 分析を開始する
  • クラッシュのシグナル、CPU レジスタ、C バックトレースを読み解く
  • Lua バックトレースからクラッシュした正確な行までたどる
  • オンラインの core dump に対する自動 Insights レポート
  • クラッシュした OpenResty/Nginx worker の core dump ファイルの場所を特定する
  • OpenResty XRay で自動(ガイド付き)core dump 分析を開始する
  • クラッシュのシグナル、CPU レジスタ、C バックトレースを読み解く
  • Lua バックトレースからクラッシュした正確な行までたどる
  • オンラインの core dump に対する自動 Insights レポート

Nginx で No debugging symbols found?OpenResty XRay が自動で再構築

  • Nginx が strip され、デバッグシンボルが欠落していることの確認
  • 欠落した Nginx デバッグシンボルを自動再構築——再コンパイル不要
  • 継続的な分析:日次・週次の Insights レポート
  • よくある質問:nginx-dbg、再コンパイル、strip 済みバイナリの分析
  • Nginx が strip され、デバッグシンボルが欠落していることの確認
  • 欠落した Nginx デバッグシンボルを自動再構築——再コンパイル不要
  • 継続的な分析:日次・週次の Insights レポート
  • よくある質問:nginx-dbg、再コンパイル、strip 済みバイナリの分析

Envoy サーバー内部での CPU 時間の消費状況(OpenResty XRay を使用)

  • 問題:高 CPU 使用率
  • OpenResty XRay の Guided Analysis 機能を使って Envoy サーバー内で最も CPU を消費する C++ コードパスを特定する
  • 自動分析とレポート
  • OpenResty XRay について
  • 問題:高 CPU 使用率
  • OpenResty XRay の Guided Analysis 機能を使って Envoy サーバー内で最も CPU を消費する C++ コードパスを特定する
  • 自動分析とレポート
  • OpenResty XRay について

llama.cpp プログラムと LLaMA2 モデル内部で CPU 時間がどのように消費されているか(OpenResty XRay を使用)

  • 問題: 高 CPU 使用率
  • 最もホットな C++ コードパスを特定
  • 完全自動化された分析とレポート
  • 問題: 高 CPU 使用率
  • 最もホットな C++ コードパスを特定
  • 完全自動化された分析とレポート

Ylang実践編:コンテナトレース、スタック展開とCore Dump分析(第4回、全4回)

  • コンテナを透過的に横断するトレース機能
    • 効率的なスタックアンワインディング
    • 終了したプロセスの分析(core dumps)
    • 極めて低いトレーシングオーバーヘッド
    • 標準 Ylang ライブラリとツール
    • ネットワークフィルタリングと制御
    • Ylang コンパイラの実装
    • オペレーティングシステムのサポート
    • オープンソースコミュニティへの貢献
    • 結論
    • 謝辞
Photo by 章亦春
  • コンテナを透過的に横断するトレース機能
    • 効率的なスタックアンワインディング
    • 終了したプロセスの分析(core dumps)
    • 極めて低いトレーシングオーバーヘッド
    • 標準 Ylang ライブラリとツール
    • ネットワークフィルタリングと制御
    • Ylang コンパイラの実装
    • オペレーティングシステムのサポート
    • オープンソースコミュニティへの貢献
    • 結論
    • 謝辞

Ylang:正規表現、完全な制御フローと透過的デバッグシンボル処理(第3回、全4回)

  • Ylang の文法(前回の続き)
    • 文字列
    • 組み込み正規表現サポート
    • 完全な制御フロー機能のサポート
    • 浮動小数点数のサポート
    • オープンソースツールチェーンとの比較
  • 透過的なデバッグシンボル処理
    • デバッグシンボル:実行時のシステムオーバーヘッドなし
    • 集中管理されたパッケージデータベース
    • デバッグシンボルのファジーマッチング
Photo by 章亦春
  • Ylang の文法(前回の続き)
    • 文字列
    • 組み込み正規表現サポート
    • 完全な制御フロー機能のサポート
    • 浮動小数点数のサポート
    • オープンソースツールチェーンとの比較
  • 透過的なデバッグシンボル処理
    • デバッグシンボル:実行時のシステムオーバーヘッドなし
    • 集中管理されたパッケージデータベース
    • デバッグシンボルのファジーマッチング

OpenResty XRay を使用して Linux カーネルのトレースサブシステムにおける 2 つのバグを捕捉

  • ユーザー空間メモリ読み取り時のカーネルデッドロック
  • カーネル内の x86 ブレークポイント挿入におけるデータ競合
  • ユーザー空間メモリ読み取り時のカーネルデッドロック
  • カーネル内の x86 ブレークポイント挿入におけるデータ競合

OpenResty XRay を使用して、カスタム Kong プラグインの Lua 例外による CPU ボトルネックを解決した方法

  • 問題:Kong サーバーの高 CPU 使用率
  • 分析とレポート
  • 結果:パフォーマンスの向上と CPU 使用率の低下
Photo by 章亦春
  • 問題:Kong サーバーの高 CPU 使用率
  • 分析とレポート
  • 結果:パフォーマンスの向上と CPU 使用率の低下

OpenResty XRay を使用して、オンラインの Kong サービスプロセス内のプラグインの CPU およびメモリ使用量をリアルタイムで統計化する方法

  • サーバープロセス内のすべての Kong プラグインの CPU 使用状況
  • サーバープロセス内のすべての Kong プラグインのメモリ使用状況
  • サーバーへの追加負荷
  • 今後の展開
Photo by 章亦春
  • サーバープロセス内のすべての Kong プラグインの CPU 使用状況
  • サーバープロセス内のすべての Kong プラグインのメモリ使用状況
  • サーバーへの追加負荷
  • 今後の展開

Ylang: eBPF、SystemTap、GDB などのフレームワーク向け動的トレーシング言語(第1回、全4回)

  • 動的トレーシングとは
  • なぜ「Y」と名付けたのか
  • Ylang 入門
  • 動的トレーシングバックエンド:eBPF+、Stap+、GDB、ODB
  • なぜ動的トレーシングに統一されたフロントエンド言語が必要なのか
  • Ylang の構文:C との真の互換性
  • よくある質問
Photo by 章亦春
  • 動的トレーシングとは
  • なぜ「Y」と名付けたのか
  • Ylang 入門
  • 動的トレーシングバックエンド:eBPF+、Stap+、GDB、ODB
  • なぜ動的トレーシングに統一されたフロントエンド言語が必要なのか
  • Ylang の構文:C との真の互換性
  • よくある質問

リークした Lua テーブルを特定する:registry / _LOADED(package.loaded)参照パス · OpenResty XRay

  • LuaJIT のメモリ管理方法
  • OpenResty XRay のコマンドラインツール
  • Lua テーブルのリーク例
  • LuaJIT GC オブジェクト種別ごとのメモリ内訳
  • lj-gco-ref フレームグラフの読み方:registry、_LOADED、package.loaded
  • 完全自動の Lua メモリリーク分析
  • LuaJIT のメモリ管理方法
  • OpenResty XRay のコマンドラインツール
  • Lua テーブルのリーク例
  • LuaJIT GC オブジェクト種別ごとのメモリ内訳
  • lj-gco-ref フレームグラフの読み方:registry、_LOADED、package.loaded
  • 完全自動の Lua メモリリーク分析

YSQL 言語を使用した Nginx プロセスのリアルタイムリクエスト数カウント

  • run-ysql ツールのインストール方法
  • リアルタイムの総リクエスト数の統計
  • 特定のリクエストのフィルタリング
  • Web コンソールでの YSQL の使用
  • 真の非侵襲的トレーシング
Photo by 章亦春
  • run-ysql ツールのインストール方法
  • リアルタイムの総リクエスト数の統計
  • 特定のリクエストのフィルタリング
  • Web コンソールでの YSQL の使用
  • 真の非侵襲的トレーシング

OpenResty または Nginx プロセスにおける読み込み済み Lua モジュールの一覧表示

  • システム環境
  • 読み込み済み Lua モジュールの名前
  • Web コンソールで直接実行
  • コンテナ内のアプリケーションのトレース
  • ツールの実装方法
  • ツールのオーバーヘッド
Photo by Yichun Zhang
  • システム環境
  • 読み込み済み Lua モジュールの名前
  • Web コンソールで直接実行
  • コンテナ内のアプリケーションのトレース
  • ツールの実装方法
  • ツールのオーバーヘッド

OpenResty または Nginx における最も CPU を消費するリクエストの分析

  • システム環境
  • CPU 使用率が最も高いリクエストのホスト名
  • CPU 使用率が最も高いリクエストの URI
  • さらに深く掘り下げる
  • Web コンソールで直接実行する
  • コンテナ内のアプリケーションのトレース
  • ツールの実装方法
  • ツールのオーバーヘッド
Photo by Yichun Zhang
  • システム環境
  • CPU 使用率が最も高いリクエストのホスト名
  • CPU 使用率が最も高いリクエストの URI
  • さらに深く掘り下げる
  • Web コンソールで直接実行する
  • コンテナ内のアプリケーションのトレース
  • ツールの実装方法
  • ツールのオーバーヘッド

メモリ使用量が 60% 削減、OpenResty XRay で問題コードを正確に特定し、迅速に修正・デプロイを実現

  • worker プロセスのメモリ使用量が高い問題について
  • OpenResty XRay による分析プロセス
  • worker プロセスのメモリが解放されない疑問について
Photo by 章亦春
  • worker プロセスのメモリ使用量が高い問題について
  • OpenResty XRay による分析プロセス
  • worker プロセスのメモリが解放されない疑問について

Lua レベル CPU フレームグラフの概要

  • フレームグラフとは何か
  • 簡単な Lua の例
  • 複雑な Lua アプリケーション
  • サンプリングのオーバーヘッド
  • セキュリティ
  • 互換性
  • その他の種類の Lua レベルフレームグラフ
Photo by Guido Jansen
  • フレームグラフとは何か
  • 簡単な Lua の例
  • 複雑な Lua アプリケーション
  • サンプリングのオーバーヘッド
  • セキュリティ
  • 互換性
  • その他の種類の Lua レベルフレームグラフ

OpenResty と Nginx の共有メモリ領域におけるメモリフラグメンテーションの問題

  • 空の共有メモリ領域
  • 類似サイズのエントリで埋める
  • 奇数キーの削除
  • 前半部分のキーの削除
  • メモリフラグメンテーションの緩和
Photo by Elena Mozhvilo
  • 空の共有メモリ領域
  • 類似サイズのエントリで埋める
  • 奇数キーの削除
  • 前半部分のキーの削除
  • メモリフラグメンテーションの緩和

OpenResty と Nginx の共有メモリ領域が物理メモリをどのように消費するか

  • Slab とメモリページ
  • 割り当てられたメモリが必ずしも消費されるわけではない
  • 偽のメモリリーク
  • HUP による再読み込み
Photo by Jose G. Ortega Castro
  • Slab とメモリページ
  • 割り当てられたメモリが必ずしも消費されるわけではない
  • 偽のメモリリーク
  • HUP による再読み込み

OpenResty と Nginx のメモリ割り当てと管理方法

  • Nginx のメモリ使用量を確認する方法
  • システムレベル
  • アプリケーションレベル
  • 従来の Nginx サーバー
  • FAQ: Nginx はどれだけのメモリを必要とするか
Photo by Harrison Broadbent
  • Nginx のメモリ使用量を確認する方法
  • システムレベル
  • アプリケーションレベル
  • 従来の Nginx サーバー
  • FAQ: Nginx はどれだけのメモリを必要とするか

LuaJIT GC64 モード

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

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

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

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