プロファイルの検索
Dash が新機能を発表!インシデントマネジメント、Continuous Profiler など多数の機能が追加されました! Dash イベントで発表された新機能!

プロファイルの検索

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

各行は、短時間のプロセスのプロファイルです。デフォルトでは、プロファイルは 1 分に 1 回アップロードされます。言語に応じて、これらのプロセスは 15 秒から 60 秒の間でプロファイルされます。

環境トレース構成から設定されたインフラストラクチャータグまたはアプリケーションタグに従ってフィルタリングできます。デフォルトでは、次のファセットを使用できます。

ファセット定義
Envアプリケーションが実行されている環境(productionstaging)。
サービスコードが実行しているサービスの名前。
バージョンコードのバージョン。
ホストプロファイルされたプロセスが実行しているホスト名。
ランタイムプロファイルされたプロセスが実行しているランタイムのタイプ(JVMCPython)。

次のメジャーを使用できます。

メジャー定義
CPUCPU 使用量 (コア単位)
メモリ割り当てプロファイル全体でのメモリ割り当て率。割り当てられたメモリはプロファイル中にガベージコレクションされる可能性があるため、この値はシステムのメモリ量を超える可能性があります。

プロファイル

行をクリックして、特定のプロファイルを表示します。

特定のプロファイル

ヘッダーには、プロファイルを生成したサービスや、それに関連付けられた環境とコードバージョンなど、プロファイルに関連付けられた情報が含まれています。

4 つのタブがプロファイルヘッダーの下にあります。

タブ定義
プロファイル現在見ているプロファイルのフレームグラフとサマリーテーブル。プロファイルタイプ(CPUMemory allocation)を切り替えることができます
Analysisコードの潜在的な問題または改善の領域を示唆する一連のヒューリスティック。現在、Java でのみ利用できます。
メトリクス同じサービスのすべてのプロファイルからのプロファイリングメトリクス
Runtime Infoサポートされている言語のランタイムプロパティとプロファイルタグ。

: 各プロファイルの右上隅には、次のオプションがあります。

  • プロフィールをダウンロードする
  • プロファイルをフルスクリーンに切り替える

プロファイルタイプ

Profiles タブでは、特定の言語で使用できるすべてのプロファイルタイプを確認できます。言語によって、プロファイルについて収集される情報は異なります。

有効にすると、次のプロファイルタイプが収集されます。

プロファイルタイプ定義
CPU in Java Code各メソッドが CPU での実行に費やした時間を示します。これには JVM(Java、Kotlin など)で実行されるコードが含まれますが、JVM オペレーションや JVM 内から呼び出されるネイティブコードは含まれません。
割り当て各メソッドによって割り当てられたヒープメモリの量を示します。これには、後で解放された割り当ても含まれます。
Wall Time in Native Codeネイティブコードで費やされた経過時間を示します。経過時間には、コードが CPU で実行されている時間、I/O を待機している時間、およびメソッドの実行中に発生するその他の時間が含まれます。このプロファイルには、通常ほとんどのアプリケーションコードである JVM バイトコードの実行に費やされた時間は含まれていません。
Class load各メソッドによってロードされたクラスの数を示します。
例外プロファイル各メソッドによってスローされたエラーと例外の数を示します。
File I/O各メソッドがファイルの読み取りと書き込みに費やした時間を示します。
Lock各メソッドがロックの待機に費やした時間を示します。
Socket I/O各メソッドがソケット I/O の読み取りと書き込みに費やした時間を示します。

有効にすると、次のプロファイルタイプが収集されます。

プロファイルタイプ定義
CPUPython やネイティブコードを含む、各関数が CPU での実行に費やした時間を示します。
割り当て各関数によって割り当てられたヒープメモリの量を示します。これには、後で解放された割り当ても含まれます。Python 3 でのみサポートされます。
割り当て数各関数によるヒープ割り当ての数を示します。これには、後で解放された割り当ても含まれます。
Wall Time各関数が使用した経過時間を表示します。経過時間には、コードが CPU で実行されている時間、I/O を待機している時間、および関数の実行中に発生するその他の時間が含まれます。
例外各関数によって発生したキャッチまたはキャッチされない例外の数を示します。
Lock各関数がロック(ロックの待機または保持)に費やした時間、または関数がロックの施錠/解除を監視した回数を示します。
キャッチされない例外try/except ブロックでキャッチされなかった例外を示します。
例外プログラムの実行中に発生した例外を示します。

有効にすると、次のプロファイルタイプが収集されます。

プロファイルタイプ定義
CPU各関数が CPU での実行に費やした時間を示します。
割り当てアプリケーションの開始以降、各関数によって割り当てられたヒープメモリの量を示します。これには、後で解放された割り当ても含まれます。 Go ではこれを alloc_space と呼びます。これは、ガベージコレクションの負荷を調査する際に役立ちます。
割り当て数アプリケーションの開始以降、各関数によってヒープメモリに割り当てられたオブジェクトの数を示します。これには、後で解放された割り当ても含まれます。これは、ガベージコレクションの負荷を調査する際に役立ちます。
ヒープ各関数によって割り当てられ、アプリケーションの開始以降に割り当てられたまま残り、最後のガベージコレクション以降存在するヒープメモリの量を示します。Go ではこれを inuse_space と呼びます。これは、サービスの全体的なメモリ使用量を調査する際に役立ちます。
ヒープ数各関数によってヒープメモリに割り当てられたオブジェクトの数と、アプリケーションの開始以降に割り当てられたまま残り、最後のガベージコレクション以降存在するオブジェクトの数を示します。これは、サービスの全体的なメモリ使用量を調査する際に役立ちます。

有効にすると、次のプロファイルタイプが収集されます。

プロファイルタイプ定義
割り当て各関数によって割り当てられたヒープメモリの量を示します。これには、後で解放された割り当ても含まれます。
Wall各関数が使用した経過時間を表示します。経過時間には、コードが CPU で実行されている時間、I/O を待機している時間、および関数の実行中に発生するその他の時間が含まれます。

その他の参考資料

お役に立つドキュメント、リンクや記事: