← Back
openresty-xray

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

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

オンラインリクエストの 200ms 追加遅延の自動診断

  • 課題
  • 分析プロセス
  • 完全自動化された分析
  • OpenResty XRay とは
Photo by 章亦春
  • 課題
  • 分析プロセス
  • 完全自動化された分析
  • OpenResty XRay とは

OpenResty XRay のコマンドラインツールを使用してメモリリークしている Lua テーブルを特定する

  • LuaJIT のメモリ管理方法
  • OpenResty XRay のコマンドラインツール
  • リークの例
  • 分析プロセス
  • lj-gco-ref アナライザ
  • 完全自動分析
  • LuaJIT のメモリ管理方法
  • OpenResty XRay のコマンドラインツール
  • リークの例
  • 分析プロセス
  • lj-gco-ref アナライザ
  • 完全自動分析

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

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

Microsoft Azure クラウド上に OpenResty XRay オンプレミス版をインストールする

  • サブスクリプションとリソースグループの作成
  • Azure Kubernetes サービスの作成
  • 環境変数の準備
  • コマンドラインから Azure にログイン\n* Kubernetes の namespace と secret の作成
  • Azure ディスクの作成
  • 永続ボリュームの設定ファイルの更新
  • Kubernetes の設定ファイルの更新
  • 永続ボリュームの作成
  • Kubernetes サービスのデプロイ
  • アプリケーションゲートウェイの設定
  • サブスクリプションとリソースグループの作成
  • Azure Kubernetes サービスの作成
  • 環境変数の準備
  • コマンドラインから Azure にログイン\n* Kubernetes の namespace と secret の作成
  • Azure ディスクの作成
  • 永続ボリュームの設定ファイルの更新
  • Kubernetes の設定ファイルの更新
  • 永続ボリュームの作成
  • Kubernetes サービスのデプロイ
  • アプリケーションゲートウェイの設定

Lua IPC パイプが OpenResty または Nginx イベントループをブロックする場合

  • 問題点
  • 分析
  • 解決策
  • 結果
Photo by Yichun Zhang
  • 問題点
  • 分析
  • 解決策
  • 結果

巨大な Nginx 設定による メモリフラグメンテーションの最適化

  • 課題
  • 分析
  • 解決策
  • 結果
Photo by Yichun Zhang
  • 課題
  • 分析
  • 解決策
  • 結果

OpenResty XRay についての FAQ

OpenResty XRay 製品のための「よくある質問」ドキュメントを作成
Photo by Yichun Zhang
OpenResty XRay 製品のための「よくある質問」ドキュメントを作成

OpenResty XRay の自動分析レポート

  • 過去
  • 現在
  • 将来
Photo by Yichun Zhang
  • 過去
  • 現在
  • 将来

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 コンソールで直接実行
  • コンテナ内のアプリケーションのトレース
  • ツールの実装方法
  • ツールのオーバーヘッド

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

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

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 サーバー
Photo by Harrison Broadbent
  • システムレベル
  • アプリケーションレベル
  • 従来の Nginx サーバー

LuaJIT GC64 モード

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

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

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

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

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

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