パフォーマンスしきい値の監視の概要
更新 : 2007 年 11 月
パフォーマンス カウンタとは、Windows が各種のシステム リソースに関するパフォーマンス データを収集する機構です。Windows には、ユーザーが操作可能ないくつかのパフォーマンス カウンタがあらかじめ定義されています。その中には、すべての Windows 2000 コンピュータに含まれているものもあれば、特定のアプリケーションに固有で、特定のコンピュータ上にしか含まれていないものもあります。各カウンタは、システムの機能の特定領域に関連しています。例としては、プロセッサのビジー時間、メモリの使用状況、ネットワーク接続を通して受信したバイト数のいずれかを監視するカウンタがあります。PerformanceCounter コンポーネントのインスタンスを使用すると、既存のパフォーマンス カウンタに直接接続し、そのデータを動的な方法で操作できます。
パフォーマンス カウンタは、コンピュータ上のパフォーマンス オブジェクトの動作を監視します。パフォーマンス オブジェクトには、プロセッサ、ディスク、メモリなどの物理的なコンポーネントと、プロセスやスレッドのようなシステム オブジェクトが含まれます。Visual Studio および Windows Software Development Kit (SDK) では、これらのパフォーマンス オブジェクトがカテゴリとして表示されます。同じパフォーマンス オブジェクトに関連するシステム カウンタは、その共通の監視対象を示すカテゴリに分類されます。PerformanceCounter コンポーネントのインスタンスを作成するときには、最初にコンポーネントの操作対象となるカテゴリを指定し、次にそのカテゴリから操作対象のカウンタを選択します。
たとえば、Windows 上のカウンタのカテゴリの 1 つとして、Memory カテゴリがあります。このカテゴリのシステム カウンタは、使用可能なバイト数やキャッシュされたバイト数などのデータを追跡します。アプリケーションにキャッシュされたバイト数を取り扱う場合は、PerformanceCounter コンポーネントのインスタンスを作成し、それを Memory カテゴリに接続して、そのカテゴリの適切なカウンタ (この場合は Cached Bytes) を選択します。
場合によっては、カテゴリがさらにインスタンスに分割されます。インスタンスは、カテゴリに関連するオブジェクトの複数回の出現に関するデータを追跡します。インスタンスは個別のカウンタに対してではなくカテゴリ全体に適用されることに注意してください。カテゴリ内のすべてのカウンタには、そのカテゴリに対して定義された各インスタンスがあります。たとえば、Process カテゴリには "Idle" および "System" というインスタンスが含まれています。Process カテゴリの各カウンタは、この 2 つの方法でデータを指定し、アイドル プロセスまたはシステム プロセスに関する情報を表示します。カテゴリおよびカウンタは、次のような構造になっています。
カテゴリ、インスタンス、およびカウンタ
この図からわかるように、Process カテゴリには 2 つのインスタンスが含まれているため、カテゴリ内の両方のカウンタにそれぞれ Idle インスタンスと System インスタンスの両方が含まれています。インスタンスの詳細については、「方法 : パフォーマンス カウンタのインスタンスを追加または削除する」を参照してください。
システムではこれ以外にも多くのカテゴリのカウンタが使用可能ですが、最も頻繁に使用する既定のカテゴリには、Cache、Memory、Objects、PhysicalDisk、Processor、Server、System、Thread などがあります。
パフォーマンス カウンタのデータ
パフォーマンス カウンタは、システムのさまざまな部分に関する値を記録します。これらの値は、エントリとして格納されるのではなく、メモリ内で特定のカテゴリに対するハンドルが開いている間だけ存在します。パフォーマンス カウンタからデータを取得するプロセスをサンプリングと呼びます。サンプリングには、カウンタの値を直接取得する場合と、計算された値を取得する場合があります。
カウンタの定義により、その値はリソースの最新の使用状況 (瞬時値) である場合もあれば、直前の 2 回のサンプリングにおける測定値の平均である場合もあります。たとえば、Process カテゴリの Thread Count カウンタから値を取得する場合は、特定のプロセスに対するスレッド数として、直前の測定値が取得されます。これは瞬時値です。しかし、Memory カテゴリの Pages/Sec カウンタを取得する場合は、直前の 2 回のサンプリングの間に取得されたメモリ ページ数の平均値に基づく毎秒の値が取得されます。
リソースの使用状況は、1 日のうちのさまざまな時間に実行される作業に基づいて、大幅に変化する可能性があります。そのため、特定の時間内の使用率を示すパフォーマンス カウンタの方が、カウンタの瞬時値を平均した値よりも意味のある測定値になります。平均値には、瞬間的に範囲を大きく逸脱した値が記録されるサービスの起動時やその他のイベントに対するデータが含まれる可能性があり、そのような場合には偏った結果が示されます。
PerformanceCounter コンポーネントは、Windows での最も一般的なパフォーマンス監視要件を満たすための機能、つまりサーバー上の既存のカウンタに接続してその値を読み書きする機能を提供します。さらに、複合データ モデリングなどの追加の機能を、Windows のパフォーマンス モニタを通じて直接利用できます。たとえば、パフォーマンス モニタを使用して、カウンタを含むデータをグラフ化したり、データに対するレポートを実行したりできます。また、警告を設定したり、データをログに保存することもできます。
.NET アプリケーションでのパフォーマンス カウンタの使用
PerformanceCounter コンポーネントを使用して、アクセス先のサーバーにインストールされている既存のカウンタに接続できます。また、独自のパフォーマンス カウンタを作成することもできます。どのカウンタのデータでも読み取ることができ、独自のカスタム カウンタにデータを書き込むことができます。
既存のパフォーマンス カウンタに接続するには、カウンタが存在するコンピュータ、カウンタのカテゴリ、およびカウンタ自体の名前を指定します。さらに、カウンタに複数のインスタンスが含まれる場合は、使用するカウンタのインスタンスを指定することもできます。そして、カウンタのすべてのデータを読み取ることができます。また、コードを使用してコンピュータ上の既存のカテゴリ、カウンタ、およびインスタンスを列挙したり、サーバー エクスプローラを使用してコンピュータ上の既存のカウンタのリストを表示したりできます。
新しいカウンタを作成するときには、ローカル コンピュータに対してまったく新しいカテゴリを指定する必要があります。既存のカテゴリに新しいカウンタを追加したり、リモート コンピュータ上に新しいカウンタを作成したりすることはできません。ただし、作成したカスタム カウンタのすべてに対して、データの読み書きができます。
サーバー エクスプローラ の [パフォーマンス カウンタ] ノードを展開して、サーバー上に存在するカウンタのカテゴリ別の一覧や、カウンタが分類されるインスタンスの一覧を表示できます。サーバー エクスプローラから特定のパフォーマンス カウンタまたはインスタンスを Microsoft Visual Studio のコンポーネント デザイナにドラッグして、選択したカウンタをポイントするようにプロパティが自動的に設定される PerformanceCounter コンポーネントのインスタンスを作成することもできます。
ASP.NET アプリケーションで PerformanceCounter コンポーネントを使用している場合、ASPNET ユーザー アカウントの既定の設定では、パフォーマンス カウンタへのアクセスが制限されます。ASPNET ユーザー アカウントの既定では、パフォーマンス カウンタへの書き込みはできますが、パフォーマンス カウンタからの読み取りは行えず、新しいカテゴリを作成することはできません。ASPNET アカウントに偽装を使用して、新しいカテゴリを作成できます。偽装 ID は、カテゴリを作成するのに十分な権限を持っている必要があります。アプリケーションを配置する前にパフォーマンス カウンタを指定できるようにする必要がある場合、配置プロジェクトでパフォーマンス カウンタを作成できます。詳細については、「ASP.NET Web アプリケーションのセキュリティ」を参照してください。
メモ : |
---|
サーバー エクスプローラ で新しいカウンタのカテゴリを作成するには、[パフォーマンス カウンタ] ノードを右クリックし、該当するメニュー コマンドをクリックします。また、特定のノードを右クリックして既存のカテゴリを編集することもできます。 |
詳細については、「サーバー エクスプローラ/データベース エクスプローラ」を参照してください。
制限事項
このリリースでは、カスタム カウンタをパフォーマンス モニタに表示するには、カスタム パフォーマンス カウンタを作成してから、Windows 2000 と一緒にインストールされているパフォーマンス モニタ (Perfmon.exe) を再起動する必要があります。
Microsoft Windows NT 4.0 では、PerformanceCounter クラスは完全にはサポートされていません。システム カウンタから読み取ることはできますが、カスタム カウンタの作成、書き込み、削除を行うことはできません。