← Back
dynamic-tracing

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

  • core dump ファイルの確認
  • core dump ファイルを分析
  • 全自動分析とレポート作成
  • core dump ファイルの確認
  • core dump ファイルを分析
  • 全自動分析とレポート作成

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

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

Ylang: eBPF、Stap+、GDB などのフレームワーク向け汎用言語(第4回、全4回)

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

Ylang: eBPF、Stap+、GDB などのフレームワーク向け汎用言語(第3回、全4回)

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

Ylang: eBPF、Stap+、GDB などのフレームワーク向け汎用言語(第2回、全4回)

  • 言語文法(前述の続き)
    • マクロ拡張
    • トレーサー空間とトレーシー空間
    • プローブ
    • 拡張変数型
Photo by Yichun Zhang
  • 言語文法(前述の続き)
    • マクロ拡張
    • トレーサー空間とトレーシー空間
    • プローブ
    • 拡張変数型

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

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

Ylang: eBPF、Stap+、GDB などのフレームワーク向け汎用言語(第1回、全4回)

  • 動的トレーシングとは
  • なぜ「Y」と名付けたのか
  • はじめに
  • 各種バックエンドとランタイム
  • なぜ統一されたフロントエンド言語が必要なのか
  • 言語の構文
  • 続く
Photo by 章亦春
  • 動的トレーシングとは
  • なぜ「Y」と名付けたのか
  • はじめに
  • 各種バックエンドとランタイム
  • なぜ統一されたフロントエンド言語が必要なのか
  • 言語の構文
  • 続く

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

  • 障害の説明
  • 障害分析のプロセス
  • 障害後の修復と強化
  • OpenResty XRay の製品とサービス
Photo by OpenResty Inc.
  • 障害の説明
  • 障害分析のプロセス
  • 障害後の修復と強化
  • OpenResty XRay の製品とサービス

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

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

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

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

Introduction to Lua-Land CPU Flame Graphs

  • What is a Flame Graph
  • Simple Lua samples
  • Complicated Lua applications
  • Sampling overhead
  • Safety
  • Compatibility
  • Other types of Lua-land Flame Graphs
Photo by Guido Jansen
  • What is a Flame Graph
  • Simple Lua samples
  • Complicated Lua applications
  • Sampling overhead
  • Safety
  • Compatibility
  • Other types of Lua-land Flame Graphs

Memory Fragmentation in OpenResty and Nginx's Shared Memory Zones

  • An empty zone
  • Filling entries of similar sizes
  • Deleting odd-numbered keys
  • Deleting the keys in the first half
  • Mitigating Fragmentation
Photo by Elena Mozhvilo
  • An empty zone
  • Filling entries of similar sizes
  • Deleting odd-numbered keys
  • Deleting the keys in the first half
  • Mitigating Fragmentation

How OpenResty and Nginx Shared Memory Zones Consume RAM

  • Slabs and pages
  • What is allocated is not what is paid for
  • Fake Memory Leaks
  • HUP reload
Photo by Jose G. Ortega Castro
  • Slabs and pages
  • What is allocated is not what is paid for
  • Fake Memory Leaks
  • HUP reload

How OpenResty and Nginx Allocate and Manage Memory

  • On The System Level
  • On The Application Level
  • For Traditional Nginx Servers
Photo by Harrison Broadbent
  • On The System Level
  • On The Application Level
  • For Traditional Nginx Servers

動的トレース技術についての雑談

  • 動的トレーシングとは
  • 動的トレーシングの利点
  • DTrace と SystemTap
  • SystemTap の実運用での活用
  • フレームグラフ
  • 方法論
  • 知識は力なり
  • オープンソースとデバッグシンボル
  • Linux カーネルのサポート
  • ハードウェアトレーシング
  • 終了プロセスの解析
  • 従来のデバッグ技術
  • 混沌としたデバッグの世界
  • OpenResty XRay
Photo by Philip Brown
  • 動的トレーシングとは
  • 動的トレーシングの利点
  • DTrace と SystemTap
  • SystemTap の実運用での活用
  • フレームグラフ
  • 方法論
  • 知識は力なり
  • オープンソースとデバッグシンボル
  • Linux カーネルのサポート
  • ハードウェアトレーシング
  • 終了プロセスの解析
  • 従来のデバッグ技術
  • 混沌としたデバッグの世界
  • OpenResty XRay
お問い合わせ

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

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

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