← Back
Openresty

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 プラグインのメモリ使用状況
  • サーバーへの追加負荷
  • 今後の展開

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 の使用
  • 真の非侵襲的トレーシング

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

OpenResty 1.19.9.1 正式リリース

  • 主な変更点
  • 完全な変更ログ
  • Alpine 3.14 公式リポジトリ
  • 主な変更点
  • 完全な変更ログ
  • Alpine 3.14 公式リポジトリ

OpenResty 1.19.3.1 正式版リリース

  • OpenResty 1.19.3.1 正式リリース
  • 会議の振り返り
    • オープニング
    • OpenResty における Proxy と Balancer のフロー解析と新機能
    • ssl.server_port の実装共有
    • ssl.verify_client の紹介
    • lua-resty-mysql への sha256 プラグイン追加
    • TLS ハンドシェイクフェーズと後続フェーズでの ngx.ctx 共有の活用
    • OpenResty XRay を使用したオープンソース OpenResty コアとそのアプリケーションの最適化
  • OpenResty 1.19.3.1 正式リリース
  • 会議の振り返り
    • オープニング
    • OpenResty における Proxy と Balancer のフロー解析と新機能
    • ssl.server_port の実装共有
    • ssl.verify_client の紹介
    • lua-resty-mysql への sha256 プラグイン追加
    • TLS ハンドシェイクフェーズと後続フェーズでの ngx.ctx 共有の活用
    • OpenResty XRay を使用したオープンソース OpenResty コアとそのアプリケーションの最適化

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 による再読み込み

LuaJIT GC64 モード

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

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

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

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