NGINX、OpenResty、およびそれらのバックエンドのトレースとトラブルシューティング

Yichun Zhang、OpenResty Inc. 創設者兼 CEO

オンラインのnginxプロセスがメモリ、CPU 時間、またはディスク I/O リソースを大量に消費していませんか? オンラインでランダムに発生するが、オフラインでは再現できない非常に遅いリクエストがありますか? 不可解な NGINX エラー ログ メッセージが表示されましたが、実際の原因についての手がかりがありませんか? 運用中にnginxプロセスがランダムにクラッシュしたり、コアダンプが発生したりして困っていませんか?

NGINX Conf 2018のセッションで、Yichun は、NGINX と OpenResty のコンテキストにおけるさまざまな実際のパフォーマンスやその他の動作の問題を調査し、動的トレースやその他の高度な事後デバッグ技術を使用して、実稼働サービスを中断することなくオンラインで原因を迅速に特定する方法を説明します。

Yichun は、GDB、SystemTap、BCC/eBPF などのさまざまなオープン ソース デバッグ フレームワークの長所と短所について説明して比較し、運用環境で Docker コンテナをトレースする際の特有の課題についても簡単に説明します。 次に、これらのデバッグ技術を統合し、特にマイクロサービス メッシュや CDN ネットワークのトラフィック ゲートウェイ クラスターなどの分散オンライン システムのコンテキストで、その使いやすさ、スケーラビリティ、拡張性を新しいレベルに向上させる新しい OpenResty Trace プラットフォームを紹介します。 OpenResty Trace が提供するユニバーサル デバッグ言語を使用してカスタム トレース ツールを作成する例も含まれています。

Yichun は実際の例を使用して、NGINX コア用の OpenResty Trace と LuaJIT を使用した OpenResty コア上での高度なトレース ツールの使用方法も示します。 彼は、FastCGI、uWSGI、または NGINX Unit を介して NGINX または OpenResty の背後で実行されている、PHP、Python、Perl、Ruby などの他の従来のバックエンド サービスのトレースについて説明します。 最後に、NGINX、OpenResty、またはそれらのバックエンド アプリケーションによってアクセスされる PostgreSQL、Memcached、Redis などのデータ サービスのトレースの例を示します。

次のステップ