.NET メトリクス
.NET Framework、.NET Core 用のコードプロファイラにより、メソッドレベルの実行とリソース消費のメトリクスがキャプチャされ、.NET アプリケーションのパフォーマンスに関する詳細な知見が提供されます。
これらのメトリクスの利点は以下の通りです。
- 関数または関数内のコードのパフォーマンスを分析します。
- コードの実行パスの分析、非効率的なアルゴリズムやメソッドの特定により、コードを最適化することで、パフォーマンスとスケーラビリティを向上させます。
- CPU の急上昇、過剰なメモリ消費、スレッド競合などの問題を検出・診断することで、問題のトラブルシューティングと解決を迅速化します。
- .NET アプリケーションコード(メソッドレベルのプロファイリング、トランザクションのトレース、メモリプロファイリング、および CLR メトリクス)の健全性を分析します。
以下の手順を実行し、利用可能な各種メトリクスを表示します。
- [APM] > [ダッシュボード] > [インスタンス] に移動します。
- [名前] 列のインスタンス名をクリックします。
以下のパフォーマンスカウンタータブは、.NET メトリクスでのみ利用可能です。これらのタブをクリックすると、関連するメトリクスウィジェットが表示されます。
note
.NET フレームワークはパフォーマンスカウンターをサポートしていますが、.NET Coreはサポートしていません。
メモリ
.NET CLR メモリのカテゴリーには、ガベージコレクタ (GC) に関する情報を提供するカウンターが含まれます。以下のウィジェットにて、これらパフォーマンスカウンターの詳細を知ることができます。
総ヒープサイズ
このウィジェットには、共通言語ランタイム (CLR) によってマネージヒープに割り当てられたメモリ量の合計が表示されます。

ジェネレーション 0 コレクション数
このウィジェットには、アプリケーションの開始以降にジェネレーション 0 オブジェクト(最も新しく割り当てられた最も若いオブジェクト)がガベージコレクションされた回数が表示されます。

ジェネレーション 1 コレクション数
このウィジェットには、アプリケーションの起動以降にジェネレーション 1 オブジェクトがガベージコレクションされた回数が表示されます。

ジェネレーション 2 コレクション数
このウィジェットには、アプリケーションの起動以降にジェネレーション 2 オブジェクトがガベージコレクションされた回数が表示されます。 カウンターは、ジェネレーション 2 のガベージコレクション(フルガベージコレクションとも呼ばれる)終了時にインクリメントされます。

合計コミットメモリ
このウィジェットには、現在ガベージコレクタによってコミットされている仮想メモリの量が表示されます。コミットメモリとは、ディスクのページング ファイルにスペースが予約されている物理メモリを意味します。

合計予約メモリ
このウィジェットには、現在ガベージコレクタによって予約されている仮想メモリの容量が表示されます。予約メモリとは、ディスクやメインメモリ ページが使用されていない場合に、アプリケーション用に予約されている仮想メモリスペースを意味します。

世代別ヒープサイズ
.NET アプリケーションにおける世代別のヒープサイズを監視することで、メモリの使用状況やガベージコレクションプロセスの効率性に関する有益な情報が得られます。このウィジェットには、選択した期間におけるヒープサイズ(MB単位)が表示されます。

ロックとスレッド
NET CLR ロックとスレッド カテゴリには、アプリケーションが使用するマネージロックとスレッドに関する情報を提供するカウンターが含まれます。以下のウィジェットにより、これらのパフォーマンスカウンターについての詳細を知ることができます。
論理スレッドの数
このウィジェットは、アプリケーションで現在管理されているスレッドオブジェクトの数を表します。

物理スレッドの数
このウィジェットには(オブジェクトの基礎スレッドとして機能することを目的にCLR が作成・所有する)マネージドスレッド 、ネイティブのオペレーティングシステム スレッドの数が表示されます。

コンテンション率/秒
このウィジェットには、実行中のスレッドが管理ロックの取得を試みて失敗した頻度が表示されます。

現在のキューの長さ
このウィジェットには、アプリケーションで現在管理ロックの獲得を待っているスレッドが表示されます。このカウンターには、時間経過による平均ではなく、最後に観測された値が表示されます。

合計コンテンション数
このウィジェットには、実行中のスレッドが管理ロックの獲得に失敗した試行の総数が表示されます。

ロード
NET CLR ロードカテゴリには、ロードされたアセンブリ、クラス、およびアプリケーションドメインに関する情報を提供するカウンターが含まれます。以下のウィジェットにより、これらのパフォーマンスカウンターについて知ることができます。
ロード時間割合
このウィジェットには、アプリケーションの合計実行時間に対するロード、または待機状態の時間の割合が表示されます。

ローダーヒープのバイト数
このウィジェットには、すべてのアプリケーションドメインにわたってクラスローダーが確保したメモリの現在のバイト単位のサイズが表示されます。確保されたメモリとは、ディスクのページングファイルに確保された物理的なスペースを意味します。

読み込まれたクラス合計数
このウィジェットには、すべてのアセンブリで読み込まれたクラスの合計数が表示されます。

合計アセンブリ数
このウィジェットには、すべてのアプリケーションドメインでロードされたアセンブリの合計数が表示されます。

アンロードされたアプリケーションドメインの合計
このウィジェットには、アンロードされたアプリケーションドメインの合計数が表示されます。

ロード失敗の合計数
このウィジェットには、ロードに失敗したクラスの合計数が表示されます。

合計アプリケーションドメイン数
このウィジェットには、アプリケーションの開始以降にロードされたアプリケーションドメインのピーク時の合計数が表示されます。

例外
.NET CLR 例外カテゴリには、アプリケーションによってスローされた例外に関する情報を提供するカウンタ-ーが含まれます。以下のウィジェットにより、これらのパフォーマンスカウンターの詳細を知ることができます。
スローされた例外の数
このウィジェットには、アプリケーションの起動以降に発生した例外の合計数が表示されます。これには、.NET 例外と、.NET 例外に変換されたアンマネジードな例外の両方が含まれます。

発生した例外の数/秒
このウィジェットには、1秒あたりの例外発生数が表示されます。これには、.NET 例外と、.NET 例外に変換されたアンマネージドな例外の両方が含まれます。

フィルター数/秒
このウィジェットには、1秒あたりに実行された.NET 例外フィルターの数が表示されます。例外フィルターは、例外が処理されたかどうかに関わらず評価されます。

finally ブロック/秒
このウィジェットには、1秒あたりの finally ブロックの実行回数が表示されます。finally ブロックは、try ブロックがどのような終了をしたかに関わらず、確実に実行されます。

スローからキャッチまでの深さ/秒
このウィジェットには、例外をスローしたフレームから例外を処理したフレームまでの、1秒あたりのスタックフレームのトラバース数が表示されます。

Interops
NET CLR Interop カテゴリには、アプリケーションと COM コンポーネント、COM+ サービス、外部タイプライブラリとのインタラクションに関する情報を提供するカウンターが含まれます。以下のウィジェットにより、これらのパフォーマンスカウンターについての詳細を知ることができます。
CCW の数
このウィジェットには、現在の COM 呼び出し可能ラッパー(CCW)の数が表示されます。CCW とは、アンマネージド COM クライアントから参照されるマネージドオブジェクトのプロキシを意味します。

マーシャリング数
このウィジェットには、アプリケーションの起動以降、引数および戻り値が、マネージドコードからアンマネージドコードへ、またはその逆方向へマーシャリングされた合計回数が表示されます。

スタブの数
このウィジェットには、CLR によって作成された現在のスタブの数が表示されます。スタブは、COM Interop 呼び出し、またはプラットフォーム呼び出し中に、引数と戻り値をマネージコードからアンマネージコードへ、またはその逆方向へマーシャリングする役割を担います。

TLB エクスポート数/秒
このメトリクスにより、パブリケーション データベースのトランザクション ログからディストリビューション データベースにエクスポートされるトランザクションの速度が測定されます。このウィジェットは、選択した期間における 1秒あたりの TLB エクスポート数を表示します。

TLB インポート数/秒
このメトリクスは、データベースレプリケーション、特に SQL Server のトランザクションレプリケーションに関連しています。このウィジェットには、ディストリビューション データベースからサブスクライバー データベースにインポートされる 1秒あたりのトランザクションの割合が表示されます。

JIT
JIT(ジャストインタイム)コンパイルプロセスでは、実行時に中間言語(IL)コードがネイティブのマシンコードに変換されます。また、これを監視することで .NET アプリケーション実行のサポートをし、最適なパフォーマンスが確保されます。
JIT 化された IL バイト数
NET CLR JIT カテゴリには、JIT に コンパイルされたコードに関する情報を提供するカウンターが含まれます。以下のウィジェットにより、これらのパフォーマンスカウンターの詳細を知ることができます。

JIT 化されたメソッド数
このウィジェットには、アプリケーションの起動以来、JIT コンパイルされたメソッドの合計数が表示されます。

JIT 時間割合 (%)
このウィジェットには、最後の JIT コンパイルフェーズ以降で、JIT コンパイルに費やされた経過時間の割合が表示されます。

IL バイトの JIT 化/秒
このウィジェットには、JITにコンパイルされた(1秒あたりの)CIL バイト数が表示されます。

ネットワーク
.NET CLR ネットワークカテゴリには、アプリケーションがネットワーク上で送受信するデータに関する情報を提供するカウンターが含まれます。以下のウィジェットにより、これらのパフォーマンスカウンターの詳細を知ることができます。
ネットワーク I/O
このウィジェットには、プロセス開始以降で、AppDomain 内のすべてのソケットオブジェクトが受信したバイト数の累計数が表示されます。

確立された接続
プロセス開始以降に AppDomain 内で接続されたストリームソケットのソケットオブジェクトの累積数。このウィジェットは、

受信されたデータグラム
このウィジェットには、プロセス開始以降で、アプリケーション ドメイン内すべてのソケットオブジェクトが受信したデータグラムパケットの累積数が表示されます。

送信されたデータグラム
このウィジェットには、プロセス開始以降で、アプリケーション ドメイン内すべてのソケットオブジェクトが送信したデータグラムパケットの累積数が表示されます。

セキュリティ
.NET CLR セキュリティ カテゴリには、CLR がアプリケーションに対して 実行するセキュリティチェックに関する情報を提供するカウンターが含まれます。以下のウィジェットにより、これらのパフォーマンスカウンターの詳細を知ることができます。
リンク回数
このウィジェットには、アプリケーションの起動以降で、コードアクセスセキュリティ チェックにリンクした回数の合計が表示されます。

RT チェックの時間割合 (%)
このウィジェットには、最後のサンプル以降で、コードアクセスセキュリティ チェックの実行に費やされた経過時間の割合が表示されます。

シグニチャー認証に費やされた時間 (%)
このメトリクスには、アプリケーション内のデジタル署名の検証など、暗号操作に費やされた時間が表示されます。このウィジェットには、選択された期間におけるシグニチャー認証に費やされた時間の割合が表示されます。

チェック実行の合計数
このウィジェットには、アプリケーションの起動以降に実行された コードアクセスセキュリティ チェックの合計数が表示されます。

関連トピック:
.NET フレームワークのパフォーマンスカウンター の詳細は https://learn.microsoft.com/en-us/dotnet/framework/debug-trace-profile/performance-counters を参照してください。