継続的なプロファイラー

継続的なプロファイラー


発見した CPU、メモリ、IO のボトルネックをメソッド名、クラス名、行番号で分類して、エンドユーザー側での遅延とインフラストラクチャーにかかるコストを大幅に削減することができます。

実環境での影響を最小限に

Continuous Profiler は、JDK Flight Recorder などの技術を活用し、すべてのサービスをまたいで実環境で実行されるよう設計されています。こうすることでホストの CPU とメモリ使用量への影響を最小限に抑えることができます。

はじめに

お使いのサービスでプロファイリングを行うことで、すべてのスタックトレースを一つの管理画面で可視化することができます。設定方法はとても簡単です。

アプリケーションをインスツルメントする

NodePHP.NET プロファイラーの非公開ベータ版が利用可能になった場合に通知するには、こちらから新規登録してください。

プロファイラーの使用ガイド

プロファイラーの概要ガイドでは、パフォーマンスの問題があるサンプルサービスを例に、Continuous Profiler を使用して問題を理解し修正する方法を確認します。

Datadog でのプロファイラー確認

アプリケーションからプロファイルを Datadog に送信するための構成が完了した後は、コードのパフォーマンスに関するインサイトを確認してみましょう。

タグを使用してプロファイルを検索

タグを使用してプロファイルを検索します。特定のホスト、サービス、バージョン、あるいはいずれかの組み合わせなど、すべてのディメンションのデータを表示させることができます。

タグによるプロファイルの検索

デプロイメントでの機能パフォーマンスを追跡する

メソッドごとの主な CPU 使用率、スレッドごとの主なメモリ割り当て状況、バージョンごとの CPU 使用状況など、主要なプロファイリングメトリクスをサービスから取得してダッシュボードを可視化することができます。

ダッシュボードにプロファイリングのメトリクスを追加

プロファイリングデータにトレースを接続する

APM 分散型トレーシングと Continuous Profiler の双方が有効化されたアプリケーションプロセスは自動的にリンクされるため、Code Hotspots タブでスパン情報からプロファイリングデータを直接開き、パフォーマンスの問題に関連する特定のコード行を見つけることができます。

Code Hotspots タブで APM トレーススパンのプロファイリング情報を確認

その他の参考資料