ヘッダーをスキップ
Oracle Enterprise Manager System Monitoring Plug-in Oracleミドルウェア以外のためのメトリック・リファレンス・マニュアル
リリース10(10.0)
B54811-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

9 Microsoft .NET Frameworkのメトリック

この章では、Microsoft .NET Frameworkのすべてのメトリック・カテゴリについて説明し、各カテゴリに関連するメトリックとその説明を表に示します。これらの表では、特定のカテゴリのメトリックでユーザーの処理をサポートしている場合、そのユーザーの処理についても説明しています。

.NET CLR例外(.NET CLR Exceptions)メトリック

「.NET CLR例外(.NET CLR Exceptions)」カテゴリのメトリックは、アプリケーションによってスローされた例外に関する情報を提供します。

デフォルトの収集間隔: 15分ごと

表9-1 .NET CLR例外(.NET CLR Exceptions)メトリック

メトリック 説明およびユーザーの処理

スローされた例外(Exceptions Thrown)

このカウンタは、アプリケーションの再起動以降にマネージド・コードで生成された例外の総数を示します。

例外は負荷がきわめて高いため、アプリケーションのパフォーマンスが大幅に低下する可能性があります。通常の処理動作に対して例外を使用するアプリケーション・ロジックのコードを調べる必要があります。Response.Redirect、Server.TransferおよびResponse.Endはすべて、ASP.NETアプリケーションで発生するThreadAbortExceptionの原因となります。このカウンタ値は、ASP.NETアプリケーションに対する1秒当たりのリクエスト数の5%未満になります。20のリクエストのうち複数のリクエストで例外がスローされた場合、これらの事象の発生に注意してください。

スローされた例外/秒(Exceptions Thrown Per Sec)

このカウンタは、マネージド・コードで1秒当たりに生成された例外の総数を示します。

例外は負荷がきわめて高いため、アプリケーションのパフォーマンスが大幅に低下する可能性があります。通常の処理動作に対して例外を使用するアプリケーション・ロジックのコードを調べる必要があります。Response.Redirect、Server.TransferおよびResponse.Endはすべて、ASP.NETアプリケーションで発生するThreadAbortExceptionの原因となります。このカウンタ値は、ASP.NETアプリケーションに対する1秒当たりのリクエスト数の5%未満になります。20のリクエストのうち複数のリクエストで例外がスローされた場合、これらの事象の発生に注意してください。

最新アップロード以降にスローされた例外(Exceptions Thrown Since Last Upload)

最後のメトリック収集時にスローされた例外の総数を表示します。

例外は負荷がきわめて高いため、アプリケーションのパフォーマンスが大幅に低下する可能性があります。通常の処理動作に対して例外を使用するアプリケーション・ロジックのコードを調べる必要があります。Response.Redirect、Server.TransferおよびResponse.Endはすべて、ASP.NETアプリケーションで発生するThreadAbortExceptionの原因となります。このカウンタ値は、ASP.NETアプリケーションに対する1秒当たりのリクエスト数の5%未満になります。20のリクエストのうち複数のリクエストで例外がスローされた場合、これらの事象の発生に注意してください。


.NET CLR相互運用(.NET CLR Interop)メトリック

「.NET CLR相互運用(.NET CLR Interop)」カテゴリのメトリックは、アプリケーションとCOMコンポーネント、COM+サービスおよび外部タイプ・ライブラリとの相互作用に関する情報を提供します。

デフォルトの収集間隔: 15分ごと

表9-2 .NET CLR相互運用(.NET CLR Interop)メトリック

メトリック 説明およびユーザーの処理

CCW

COMコール可能ラッパー(CCW)の現在の数を表示します。CCWは、アンマネージドCOMクライアントから参照されているマネージド・オブジェクトのプロキシです。このカウンタは、アンマネージドCOMコードによって参照されたマネージド・オブジェクトの数を示します。

この値はできるかぎり低くします。この値が高い場合、アプリケーションのこの部分を再設計して必要なトランジション数を減らすことができるかどうかを判断します。メモリーが拡張されて(または必要なときにメモリーが解放されずに)、このカウンタが増え続けている場合、アンマネージド・コードが一部のマネージド・オブジェクトに固定されているために、メモリーの未解放や増加の現象が発生していることを表します。

マーシャリング(Marshalling)

アプリケーションの開始以降に、引数および戻り値がマネージド・コードからアンマネージ・コード(およびその逆)にマーシャリングされた合計回数を表示します。

この値はできるかぎり低くします。この値が高い場合、アプリケーションのこの部分を再設計して必要なトランジション数を減らすことができるかどうかを判断します。

スタブ(Stubs)

共通言語ランタイムによって作成された現在のスタブ数を表示します。スタブは、COM相互運用コールまたはプラットフォーム起動コール時に、引数と戻り値をマネージド・コードからアンマネージド・コードに(またはその逆に)マーシャリングします。

この値はできるかぎり低くします。コールがマネージド・コードからアンマネージド・コード(およびその逆)に対して行われる場合、このカウンタはCOMとマネージド・コードとの間の相互運用を示します。この値が高い場合、アプリケーションのこの部分を再設計して必要なトランジション数を減らすことができるかどうかを判断します。


.NET CLR JITメトリック

.NET CLR JITカテゴリのメトリックは、コンパイルしたコードに関するジャスト・イン・タイム(JIT)情報を提供します。JITコンパイルは、メソッドの実行直前にILメソッドをネイティブのマシン語にコンパイルする場合に使用されます。

デフォルトの収集間隔: 15分ごと

表9-3 .NET CLR JITメトリック

メトリック 説明およびユーザーの処理

JITコンパイルされたILバイト(IL Bytes Jitted)

アプリケーションの開始以降にジャスト・イン・タイム(JIT)コンパイラでコンパイルされたMicrosoft Intermediate Language(MSIL)の総バイト数を表示します。

このパフォーマンス・カウンタの値が高い場合は、パフォーマンスのオーバーヘッドが発生していることを示します。JITはランタイム最適化コンパイラです。NGEN.exeユーティリティを使用すると、インストール時にアプリケーションをコンパイルすることにより、クライアント・アプリケーションの起動時間の改善を検討できます。

JITコンパイルされたメソッド(Methods Jitted)

アプリケーションの開始以降にJITコンパイルされたメソッドの総数を表示します。JITコンパイラでプリコンパイルされているメソッドはカウントされません。

このパフォーマンス・カウンタの値が高い場合は、パフォーマンスのオーバーヘッドが発生していることを示します。JITはランタイム最適化コンパイラです。NGEN.exeユーティリティを使用すると、インストール時にアプリケーションをコンパイルすることにより、クライアント・アプリケーションの起動時間の改善を検討できます。

標準JITの失敗(Standard Jit Failures)

アプリケーションの開始以降にJITコンパイラがコンパイルに失敗したメソッドのピーク数を表示します。

このカウンタの値が高い場合、JITコンパイラに問題があることを示します。この失敗は、ILの検証に失敗したときやJITコンパイラに内部エラーが検出されたときに発生します。問題を解決するには、.NETフレームワークの設定を確認します。


.NET CLRローディング(.NET CLR Loading)メトリック

「.NET CLRローディング(.NET CLR Loading)」カテゴリのメトリックは、ロードされたアセンブリ、クラスおよびアプリケーション・ドメインに関する情報を提供します。

デフォルトの収集間隔: 15分ごと

表9-4 .NET CLRローディング(.NET CLR Loading)メトリック

メトリック 説明およびユーザーの処理

ロードの失敗(Load Failures)

アプリケーションの開始以降にロードに失敗したクラスのピーク数を表示します。

ロードの失敗は、不十分なセキュリティや無効な書式など、いくつかの理由で発生します。問題を修正するには、使用しているコードを確認します。

最新アップロード以降にロードされたアプリケーション・ドメイン(Application Domains Loaded Since Last Upload)

最後のメトリック収集時にこのアプリケーションにロードされたアプリケーション・ドメイン数を表示します。

ほとんどの場合、特にセキュリティ上の理由から、複数のアプリケーション・ドメインの使用を避けられません。ただし、複数のアプリケーション・ドメインを使用すると、起動時のパフォーマンスが制限される可能性があります。複数のアプリケーション・ドメインによる影響を軽減するには、アセンブリをドメイン中立としてロードし、アプリケーション・ドメイン間で効率的な通信を行い、NeutralResourcesLanguageAttributeを使用して、シリアライズを有効に使用します。

最新アップロード以降にアンロードされたアプリケーション・ドメイン(Application Domains Unloaded Since Last Upload)

最後のメトリック収集時にこのアプリケーションにアンロードされたアプリケーション・ドメイン数を表示します。

ほとんどの場合、特にセキュリティ上の理由から、複数のアプリケーション・ドメインの使用を避けられません。ただし、複数のアプリケーション・ドメインを使用すると、起動時のパフォーマンスが制限される可能性があります。複数のアプリケーション・ドメインによる影響を軽減するには、アセンブリをドメイン中立としてロードし、アプリケーション・ドメイン間で効率的な通信を行い、NeutralResourcesLanguageAttributeを使用して、シリアライズを有効に使用します。

ローダー・ヒープのバイト(Bytes in Loader Heap)

クラス・ローダーによって、すべてのアプリケーション・ドメインで現在コミットされているメモリーのサイズ(バイト単位)を示します。コミットされたメモリーとは、ディスクのページング・ファイル内で予約された領域の物理メモリーのことです。

このカウンタを安定した状態にする必要があります。安定していない場合、このカウンタの変動が大きいと、アプリケーション・ドメインごとに非常に多くのアセンブリがロードされていることを示します。パフォーマンスを向上するには、ページ・ファイル・サイズを適宜変更します。

現在のアプリケーション・ドメイン(Current Application Domains)

このアプリケーションにロードされた現在のアプリケーション・ドメイン数を表示します。

この値は、Webアプリケーションの数に1を加えた数と同じです。この追加分のアプリケーションは、ASP.NETワーカー・プロセスによってロードされたデフォルトのアプリケーション・ドメインです。ほとんどの場合、特にセキュリティ上の理由から、複数のアプリケーション・ドメインの使用を避けられません。ただし、複数のアプリケーション・ドメインを使用すると、起動時のパフォーマンスが制限される可能性があります。複数のアプリケーション・ドメインによる影響を軽減するには、アセンブリをドメイン中立としてロードし、アプリケーション・ドメイン間で効率的な通信を行い、NeutralResourcesLanguageAttributeを使用して、シリアライズを有効に使用します。

現在のアセンブリ(Current Assemblies)

現在実行中のアプリケーションのすべてのアプリケーション・ドメインにロードされた現在のアセンブリ数を表示します。この数にはシステム内のアプリケーション・ドメインが含まれます。デフォルトでASP.NET Webページ(.aspxファイル)およびASP.NETユーザー・コントロール(.asxcファイル)のバッチ・コンパイルが行われると、依存の数によって異なりますが、通常は1つから3つのアセンブリが形成されます。ロードされたアセンブリの数が極端に多い場合、メモリーが過度に消費されている可能性があります。

ワークフローの効率を落とさずにWebページ数とユーザー・コントロール数を最小限に抑えます。アセンブリは、アプリケーション・ドメインからアンロードできません。メモリーの消費過多を防ぐために、再コンパイルの数(.aspx、.ascx、.asax)が<compilation numRecompilesBeforeAppRestart=/>で指定した制限を超えたときに、アプリケーション・ドメインがアンロードされます。

注意: <%@ page debug=%>属性がtrueに設定されているか、または<compilation debug=/>がtrueに設定されている場合、バッチ・コンパイルは無効です。

現在ロードされているクラス(Current Classes Loaded)

現在すべてのアセンブリにロードされているクラス数を表示します。

この値が非常に高い場合、パフォーマンスを向上するには物理メモリーの増加を検討します。

最新アップロード以降のロードの失敗(Load Failures Since Last Upload)

最後のメトリック収集時にロードに失敗したクラスのピーク数を表示します。

ロードの失敗は、不十分なセキュリティや無効な書式など、いくつかの理由で発生します。問題を修正するには、使用しているコードを確認します。

ロード時間(%)(Time Loading Percent)

今後使用するために予約されています。

アプリケーション・ドメインの合計(Total Application Domains)

アプリケーションの開始以降にロードされたアプリケーション・ドメインのピーク数を表示します。

ほとんどの場合、特にセキュリティ上の理由から、複数のアプリケーション・ドメインの使用を避けられません。ただし、複数のアプリケーション・ドメインを使用すると、起動時のパフォーマンスが制限される可能性があります。複数のアプリケーション・ドメインによる影響を軽減するには、アセンブリをドメイン中立としてロードし、アプリケーション・ドメイン間で効率的な通信を行い、NeutralResourcesLanguageAttributeを使用して、シリアライズを有効に使用します。

アンロードされたアプリケーション・ドメインの合計(Total Application Domains Unloaded)

アプリケーションの開始以降にアンロードされたアプリケーション・ドメインのピーク数を表示します。

ほとんどの場合、特にセキュリティ上の理由から、複数のアプリケーション・ドメインの使用を避けられません。ただし、複数のアプリケーション・ドメインを使用すると、起動時のパフォーマンスが制限される可能性があります。複数のアプリケーション・ドメインによる影響を軽減するには、アセンブリをドメイン中立としてロードし、アプリケーション・ドメイン間で効率的な通信を行い、NeutralResourcesLanguageAttributeを使用して、シリアライズを有効に使用します。

アセンブリの合計(Total Assemblies)

アプリケーションの開始以降にロードされたアセンブリの総数を表示します。

ワークフローの効率を落とさずにWebページ数とユーザー・コントロール数を最小限に抑えます。アセンブリは、アプリケーション・ドメインからアンロードできません。メモリーの消費過多を防ぐために、再コンパイルの数(.aspx、.ascx、.asax)が<compilation numRecompilesBeforeAppRestart=/>で指定した制限を超えたときに、アプリケーション・ドメインがアンロードされます。

注意: <%@ page debug=%>属性がtrueに設定されているか、または<compilation debug=/>がtrueに設定されている場合、バッチ・コンパイルは無効です。

ロードされているクラスの合計(Total Classes Loaded)

アプリケーションの開始以降にすべてのアセンブリにロードされたクラスの累計数を表示します。


.NET CLRロックおよびスレッド(.NET CLR Locks and Threads)メトリック

「.NET CLRロックおよびスレッド(.NET CLR Locks and Threads)」カテゴリのメトリックは、アプリケーションが使用するマネージド・ロックとマネージド・スレッドに関する情報を提供します。

デフォルトの収集間隔: 15分ごと

表9-5 .NET CLRロックおよびスレッド(.NET CLR Locks and Threads)メトリック

メトリック 説明およびユーザーの処理

競合レート/秒(Contention Rate Per Sec)

ランタイムのスレッドがマネージド・ロック取得の試みに失敗する割合を表示します。

ゼロ以外の値が続くと、問題の発生原因となります。この数値が増えている場合、コード内にボトルネックが存在します。コード内のこの領域は同期化されるため、一度に1つのスレッドのみがこの領域に挿入されますが、コードの該当部分に侵入しようとする複数のスレッドによって攻撃を受けています。ボトルネックを解決するには、コードの該当部分を見つけて、状況を回避できる方法を決定します。

最新アップロード以降の競合(Contentions Since Last Upload)

ランタイムのスレッドが最後のメトリック収集時にマネージド・ロック取得の試みに失敗した合計回数を表示します。

ゼロ以外の値が続くと、問題の発生原因となります。この数値が増えている場合、コード内にボトルネックが存在します。コード内のこの領域は同期化されるため、一度に1つのスレッドのみがこの領域に挿入されますが、コードの該当部分に侵入しようとする複数のスレッドによって攻撃を受けています。ボトルネックを解決するには、コードの該当部分を見つけて、状況を回避できる方法を決定します。

現在の論理スレッド(Current Logical Threads)

アプリケーションの現在のマネージド・スレッド・オブジェクト数を表示します。このカウンタは、全時間を通じての平均値ではなく、最後に計測された値のみを表示します。

実行中のスレッドと停止中のスレッドの両方がカウントされます。値が高すぎる場合、問題の発生原因となる可能性があります。

現在の物理スレッド(Current Physical Threads)

マネージド・スレッド・オブジェクトの元になるスレッドとして使用するために共通言語ランタイムによって作成および所有されているネイティブのオペレーティング・システムのスレッド数を表示します。

値が高すぎる場合、パフォーマンスのボトルネックを示します。この値が高すぎる場合、発生スレッド数を最適値まで減らすようにコードをリファクタリングします。

現在のキューの長さ(Current Queue Length)

アプリケーション内でマネージド・ロックの取得を現在待機中のスレッドの総数を表示します。

コードの特定の部分に対して専用テストを実行して、特定のコード・パスのキュー長の平均を確認できます。これは、非効率な同期メカニズムの特定に役立ちます。

現在の認識スレッド(Current Recognized Threads)

ランタイムによって現在認識されているスレッド数を表示します。これらのスレッドは対応する.NETスレッド・オブジェクトに関連付けられています。これらのスレッドはCLRによって作成されません。CLRの外部で作成されますが、少なくとも一度はCLRの内部で実行されています。一意のスレッドのみが追跡されます。同じスレッドIDで、CLRに再入力するスレッドやスレッド終了後に再作成されたスレッドは、2回カウントされません。

キューの長さのピーク(Queue Length Peak)

アプリケーションの開始以降にマネージド・ロックの取得を待機していたスレッドの総数を表示します。

コードの特定の部分に対して専用テストを実行して、特定のコード・パスのキュー長の平均を確認できます。これは、非効率な同期メカニズムの特定に役立ちます。

キューの長さ/秒(Queue Length Per Sec)

アプリケーション内でロックの取得を待機中の1秒当たりのスレッド数を表示します。

コードの特定の部分に対して専用テストを実行して、特定のコード・パスのキュー長の平均を確認できます。これは、非効率な同期メカニズムの特定に役立ちます。

競合の合計(Total Contentions)

ランタイムのスレッドがマネージド・ロックを取得しようとして失敗した合計回数を表示します。

ゼロ以外の値が続くと、問題の発生原因となります。コードの特定の部分に対して専用テストを実行して、特定のコード・パスに対する競合レートを確認できます。

認識されたスレッドの合計(Total Recognized Threads)

アプリケーションの開始以降にランタイムによって認識されたスレッドの総数を表示します。


.NET CLRメモリー(.NET CLR Memory)メトリック

「.NET CLRメモリー(.NET CLR Memory)」カテゴリのメトリックは、マネージド・メモリーの消費とアンマネージド・メモリーの消費に関する情報を提供します。

デフォルトの収集間隔: 15分ごと

表9-6 .NET CLRメモリー(.NET CLR Memory)メトリック

メトリック 説明およびユーザーの処理

全ヒープのバイト(Bytes in All Heaps)

ガベージ・コレクション・ヒープに割り当てられている現在のメモリーをバイト数で表示します。このカウンタは、Gen 0 Heap Size、Gen 1 Heap Size、Gen 2 Heap SizeおよびLarge Object Heap Sizeの各カウンタの合計値です。このカウンタの値は、プロセスおよびプライベートのバイト数の値よりも常に低くなります。オペレーティング・システムによってプロセスに割り当てられるネイティブ・メモリーも含まれます。プライベート・バイト(全ヒープのバイト数)は、アンマネージド・オブジェクトに割り当てられたバイト数です。

このカウンタの値が増え続けている場合、マネージド・リークが発生しています。マネージド・オブジェクトには、常に参照されているものと一度も収集されないものがあります。

ピン止めオブジェクト(Pinned Objects)

.NETベースのアプリケーションでアンマネージド・コードが使用される場合、これらのオブジェクトはメモリー内にピン止めされます。つまり、オブジェクトへのポインタが無効になるためオブジェクトを移動できません。オブジェクトは、最後のガベージ・コレクションで検出されたピン止めオブジェクトの数を表示するこのカウンタによって測定できます。

ピン止めオブジェクトの数が多すぎると、ガベージ・コレクタのパフォーマンスに影響を与えます。これは、オブジェクトを移動したり、メモリーを効率的に整理したりするガベージ・コレクタの機能が制限されるためです。I/Oコールに使用する再利用可能なバッファなどのオブジェクトを、マネージド・コードで明示的にピン止めすることもできます。コード内のピン止めオブジェクトの数を減らします。

通常、アンマネージド・コードを頻繁に呼び出さなければこの値が高くなりすぎることはありません。このカウンタの値が増えている場合、オブジェクトをアンマネージド・コードに渡して、アンマネージド・コードを解放していないか、またはオブジェクトを明示的にピン止めして、ピン止めの解除を忘れてしまっているために、オブジェクトがピン止めされていることを示します。

このカウンタの値が増えて、「仮想バイト数(Virtual Bytes)」カウンタの値も増えている場合、オブジェクトのピン止めが頻繁に行われ、ガベージ・コレクタはヒープを効率的に圧縮できません。これにより、ヒープは余分な仮想メモリーの予約を強要されるため、ガベージ・コレクション・ヒープは拡張し、リクエストされた割当てのニーズに対応します。

使用中の同期ブロック(Sink Blocks in Use)

現在使用中の同期ブロックの数を表示します。同期ブロックは、同期情報を格納するためにオブジェクトごとに割り当てられるデータ構造体です。同期ブロックは、マネージド・オブジェクトへの弱い参照を保持し、ガベージ・コレクタは、同期ブロックをスキャンする必要があります。同期ブロックには、同期情報のみでなく、COM相互運用メタデータも格納できます。

このカウンタは、同期プリミティブの頻繁な使用に関係するパフォーマンス問題を示します。このカウンタの値が増え続ける場合、同期オブジェクトを使用しているすべての場所を調べ、それらのオブジェクトが実際に必要かどうかを判断します。

ガベージ・コレクションの時間(%)(Time in Garbage Collection Percent)

前回のガベージ・コレクション・サイクル以降にガベージ・コレクションの実行に費やした経過時間の割合を表示します。

このカウンタは、一時的なピークでCPUの使用率が70%になると、ほとんどのアプリケーションで平均約5%となります。CPUの負荷が増えると、ガベージ・コレクションの実行に費やす時間の割合も増加します。CPUを測定する際はこの点に注意してください。高い値の原因として最も考えられるのは、割当てが多すぎることです。これは、ASP.NETアプリケーションのリクエストごとに割り当てている場合です。このカウンタの値がさらに高くなる場合は、アプリケーションの割当てプロファイルを調べます。


.NET CLRネットワーク(.NET CLR Networking)メトリック

「.NET CLRネットワーク(.NET CLR Networking)」カテゴリのメトリックは、アプリケーションがネットワーク経由で送受信するデータに関する情報を提供します。

デフォルトの収集間隔: 15分ごと

表9-7 .NET CLRネットワーク(.NET CLR Networking)メトリック

メトリック 説明およびユーザーの処理

受信済バイト数(Bytes Received)

すべてのオープン・ソケット接続経由で受信した累計バイト数を表示します。この数には、データと、TCP/IPによって定義されていないプロトコル情報が含まれます。

このカウンタは、アプリケーションのネットワーク使用を調整しながら、すべての.NETベース・アプリケーションで生成されたトラフィックの合計を示します。これらのカウンタは特定の.NETベース・アプリケーションを監視しないことに注意してください。ただし、共通言語ランタイムを使用しないアプリケーションで生成されるネットワーク・トラフィックは測定されません。

送信されたバイト数(Bytes Sent)

プロセスの開始以降にすべてのオープン・ソケット接続経由で送信した累計バイト数を表示します。この数には、データと、TCP/IPによって定義されていないプロトコル情報が含まれます。

このカウンタは、アプリケーションのネットワーク使用を調整しながら、すべての.NETベース・アプリケーションで生成されたトラフィックの合計を示します。これらのカウンタは特定の.NETベース・アプリケーションを監視しないことに注意してください。ただし、共通言語ランタイムを使用しないアプリケーションで生成されるネットワーク・トラフィックは測定されません。

確立された接続(Connections Established)

プロセスの開始以降にそのプロセスのために確立されたソケット接続の累計数を表示します。このカウンタの値が高い場合、多くのユーザーがアプリケーションを使用しようとしていることを表します。これは、アプリケーションの使用率が高いことと同じです。

最新アップロード以降に確立された接続(Connection Established Since Last Upload)

最後のメトリック収集時にこのプロセスのために確立されたソケット接続数を表示します。このカウンタの値が高い場合、多くのユーザーがアプリケーションを使用しようとしていることを表します。これは、アプリケーションの使用率が高いことと同じです。

受信済データグラム(Datagrams Received)

プロセスの開始以降に受信したデータグラム・パケットの累計数を表示します。このカウンタは、アプリケーションのネットワーク使用を調整しながら、すべての.NETベース・アプリケーションで受信したデータグラム・パケット・トラフィックを示します。

送信済データグラム(Datagramss Sent)

プロセスの開始以降に送信したデータグラム・パケットの累計数を表示します。このカウンタは、アプリケーションのネットワーク使用を調整しながら、すべての.NETベース・アプリケーションで送信したデータグラム・パケット・トラフィックを示します。


.NET CLRリモート処理(.NET CLR Remoting)メトリック

「.NET CLRリモート処理(.NET CLR Remoting)」カテゴリのメトリックは、.NETリモート処理のパフォーマンスと様々なキー・パフォーマンス・カウンタに関する情報を提供します。「リモート・コール数/秒(Remote Calls Per Sec)」カウンタと「リクエスト数/秒(Requests Per Sec)」カウンタを使用して、リモート・コンポーネントのスループットを測定できます。

デフォルトの収集間隔: 15分ごと

表9-8 .NET CLRリモート処理(.NET CLR Remoting)メトリック

メトリック 説明およびユーザーの処理

チャネル(Channels)

アプリケーションの開始以降にすべてのアプリケーション・ドメインで登録されたリモート・チャネルの総数を表示します。チャネルは、リモート・オブジェクトとのメッセージの受渡しを行います。

パフォーマンスを最適にするには、TcpChannelを使用します。TcpChannelは信頼性のあるサーバー・シナリオで使用します。

ロードされたコンテキスト・バインド・クラス(Context Bound Classes Loaded)

現在ロードされているコンテキスト・バインド・クラスの数を表示します。コンテキストにバインドできるクラスを、コンテキスト・バインド・クラスといいます。これらのクラスは、同期、スレッド類似性およびトランザクションなどについての使用規則を提供するContext属性でマークされます。

割り当てられたコンテキスト・バインド・オブジェクト/秒(Context Bound Objects Alloc Per Sec)

1秒間に割り当てられたコンテキスト・バインド・オブジェクトの数を表示します。コンテキストにバインドできるオブジェクトを、コンテキスト・バインド・オブジェクトといいます。これらのオブジェクトは、同期、スレッド類似性およびトランザクションなどについての使用規則を提供するContext属性でマークされます。

このカウンタは、全時間を通しての平均値ではなく、最後の2回のサンプリングで計測された値の差をサンプリング間隔で割った値が表示されます。

コンテキスト・プロキシ(Context Proxies)

プロセスの開始以降におけるこのプロセスのリモート・プロキシ・オブジェクトの総数を表示します。プロキシ・オブジェクトは、リモート・オブジェクトの代理として機能し、プロキシに対して行われたすべてのコールが正しいリモート・オブジェクトに転送されることを保証します。

コンテキスト(Contexts)

アプリケーションにおける現在のリモート・コンテキストの数を表示します。コンテキストとは、同期、スレッド類似性およびトランザクションなどの同じ使用規則を持つオブジェクトのコレクションが含まれている境界のことです。

リモート・コール数/秒(Remote Calls Per Sec)

1秒間に呼び出されるリモート・プロシージャ・コールの数を表示します。リモート・プロシージャ・コールとは、コール元のアプリケーション・ドメインの外部のオブジェクトに対するコールのことです。このカウンタは、全時間を通しての平均値ではなく、最後の2回のサンプリングで計測された値の差をサンプリング間隔で割った値が表示されます。

1つの操作を完了するには、複数のリモート・コールが必要です。1つの操作を完了するために、このカウンタの値をリクエスト数で割る必要があります。これにより、1秒間で完了した操作の割合が求められます。リクエストの実行時間を計測するには、コードを編成する必要があります。

リモート・コール数の合計(Total Remote Calls)

アプリケーションの開始以降に呼び出されたリモート・プロシージャ・コールの総数を表示します。

1つの操作を完了するには、複数のリモート・コールが必要です。1つの操作を完了するために、このカウンタの値をリクエスト数で割る必要があります。これにより、1秒間で完了した操作の割合が求められます。リクエストの実行時間を計測するには、コードを編成する必要があります。


.NET CLRセキュリティ(.NET CLR Security)メトリック

「.NET CLRセキュリティ(.NET CLR Security)」カテゴリのメトリックは、コード・アクセス・セキュリティ・チェックとそれらがパフォーマンスに与える影響に関する情報を提供します。

デフォルトの収集間隔: 15分ごと

表9-9 .NET CLRセキュリティ(.NET CLR Security)メトリック

メトリック 説明およびユーザーの処理

リンク時のチェック(Link Time Checks)

アプリケーションの開始以降に実行されたリンク時のコード・アクセス・セキュリティ・チェックの総数を表示します。

ランタイム・チェックの時間(%)(Percent Time In RT Checks)

最後のサンプリング以降にランタイム・コード・アクセス・セキュリティ・チェックの実行に費やした経過時間の割合を表示します。

署名認証の時間(%)(Percent Time Sig Authenticating)

今後使用するために予約されています。

スタックの深さ(Stack Walk Depth)

最後のランタイム・コード・アクセス・セキュリティ・チェック時のスタックの深さを表示します。このカウンタは、平均値ではありません。最後に計測された値のみが表示されます。

ランタイム・チェックの合計(Total Runtime Checks)

アプリケーションの開始以降に実行されたランタイム・コード・アクセス・セキュリティ・チェックの総数を表示します。このカウンタを「スタックの深さ(Stack Walk Depth)」カウンタと共用することで、セキュリティ・チェック時にコードで発生するパフォーマンスの低下を把握できます。


.NETデータ(.NET Data)メトリック

「.NETデータ(.NET Data)」カテゴリのメトリックは、ADO.NETデータ・アクセス・パフォーマンスに関する情報を提供します。これらのカウンタは、プールの使用状況や有効性、および失敗した接続を測定することで、データ・アクセス・パフォーマンスを効率的に測定するための重要な情報を提供します。

デフォルトの収集間隔: 15分ごと

表9-10 .NETデータ(.NET Data)メトリック

メトリック 説明およびユーザーの処理

SQLクライアントの現在プールされている接続とプールされていない接続(SQL Client Current Pooled and Non-Pooled Connections)

プールされている、またはプールされていない現在の接続数。このカウンタの値がきわめて高い場合、クローズしていない接続がアプリケーション内にあることを示します。

完了したら、すべての接続をクローズします。

SQLクライアントの失敗したコマンド(SQL Client Failed Commands)

なんらかの理由で失敗したコマンドの合計実行回数。このカウンタの値が高い場合、問題の発生原因となります。

設定に問題があるかどうかを確認するために、コード内の問題を調べます。

SQLクライアントの失敗した接続(SQL Client Failed Connects)

なんらかの理由で失敗した接続オープンの合計試行回数。このカウンタの値が高い場合、問題の発生原因となります。

設定に問題があるかどうかを確認するために、コード内の問題を調べます。


NetCLRレスポンス(NetCLR Response)メトリック

「NetCLRレスポンス(NetCLR Response)」カテゴリのメトリックは、Microsoft .NET Frameworkのステータスに関する情報を提供します。

デフォルトの収集間隔: 1分ごと

表9-11 NetCLRレスポンス(NetCLR Response)メトリック

メトリック 説明およびユーザーの処理

ステータス(Status)

Microsoft IIS 6.0ターゲットのステータスを表示します。ターゲットのステータスは、IISADMINサービスが実行または停止しているかに基づきます。

ステータスが停止を示している場合、Microsoft IISADMINサービスが実行中かどうかを確認します。ターゲットのステータスが適切に表示されない場合、Agentが使用可能かどうかを確認します。