ここではPerformanceCounterCategoryクラスの使い方について見ていきます。 PerformanceCounterCategoryクラスはパフォーマンスカウンタのカテゴリを扱うためのクラスです。 このクラスを使うことで、パフォーマンスカウンタで計測できる値のカテゴリやインスタンス名の一覧を取得したり、カテゴリに属するカウンタを作成したりすることができます。 また、環境ごとに使用できるかどうかが異なる可能性のあるカウンタについて調べることができます。
カテゴリの列挙
パフォーマンスカウンタで計測できるすべてのカテゴリを列挙するには、GetCategoriesメソッドを使います。 このメソッドは静的メソッドで、カテゴリを表すPerformanceCounterCategoryのインスタンスを配列で返します。 CategoryNameプロパティを参照することでカテゴリ名を取得できるほか、CategoryHelpプロパティを参照してカテゴリの説明を取得することもできます。
完全なリストは文末にまとめています。
既知のカテゴリが存在するかどうかを調べるにはExistsメソッドを使います。 また、コンストラクタにカテゴリ名を指定してPerformanceCounterCategoryのインスタンスを作成することもできます。
カウンタの作成・取得
特定のカテゴリで計測できるカウンタを取得するには、GetCountersメソッドを使います。 このメソッドは、カテゴリに存在するすべてのカウンタ名に対応するPerformanceCounterのインスタンスを配列で返します。
このメソッドは、カテゴリによって引数でカウンタのインスタンス名を指定する必要がある場合とそうでない場合が異なります。 CategoryTypeがMultiInstanceの場合は複数インスタンスのカテゴリ、つまりインスタンス名を指定する必要があり、SingleInstanceの場合は単一インスタンス、つまりインスタンス名を指定する必要はありません。 このメソッドに渡したインスタンス名は、そのままPerformanceCounterを作成する際のインスタンス名と同じとなります。 参考までに、カテゴリとCategoryTypeのリストを文末にまとめています。
カテゴリ名の場合と同様、既知のカウンタが存在するかどうかを調べるためにCounterExistsメソッドを使うことができます。
インスタンス名の列挙
特定のカテゴリで計測できる対象のインスタンス名を取得するには、GetInstanceNamesメソッドを使います。
カテゴリ名の場合と同様、既知のインスタンスが存在するかどうかを調べるためにInstanceExistsメソッドを使うことができます。
カテゴリの一覧
GetCategoriesメソッドで取得したパフォーマンスカウンタのCategoryNameとCategoryType、CategoryHelpの一覧です。
Windows 7 Ultimate
CategoryName | CategoryType | CategoryHelp |
.NET CLR Data | MultiInstance | .Net CLR データです。 |
.NET CLR Networking | MultiInstance | ヘルプは使用できません。 |
.NET CLR Networking 4.0.0.0 | MultiInstance | System.Net 名前空間のクラスのカウンタです。 |
.NET Data Provider for Oracle | MultiInstance | System.Data.OracleClient のカウンタです。 |
.NET Data Provider for SqlServer | MultiInstance | System.Data.SqlClient のカウンタです。 |
.NET Memory Cache 4.0 | MultiInstance | System.Runtime.Caching.MemoryCache Performance Counters |
ASP.NET | SingleInstance | ASP.NET グローバル パーフォーマンス カウンター |
ASP.NET Applications | MultiInstance | ASP.NET アプリケーション パーフォーマンス カウンター |
ASP.NET Apps v4.0.30319 | MultiInstance | ASP.NET アプリケーション パーフォーマンス カウンター |
ASP.NET State Service | SingleInstance | ASP.NET 状態サービス |
ASP.NET v4.0.30319 | SingleInstance | ASP.NET グローバル パーフォーマンス カウンター |
Browser | SingleInstance | Browser パフォーマンス オブジェクトには、通知、列挙および Browser 伝送の率を計測するカウンターがあります。 |
Cache | SingleInstance | Cache パフォーマンス オブジェクトには、ディスクから読み取る必要なしにデータへのアクセス許可がある限り使用されているデータを保管する物理メモリの領域である、ファイル システム キャッシュを監視するカウンターがあります。キャッシュは、通常アプリケーションに使用されるため、アプリケーションの I/O 操作のインジケーターとして監視されます。メモリが十分にある場合にはキャッシュのサイズは大きくなりますが、メモリが少ない場合にはキャッシュのサイズも小さくなり効果的でなくなります。 |
Client Side Caching | SingleInstance | 帯域幅消費を削減する SMB BranchCache のパフォーマンス カウンター |
Distributed Transaction Coordinator | SingleInstance | Microsoft 分散トランザクション コーディネーター パフォーマンス カウンター |
Event Tracing for Windows | SingleInstance | このコレクションのカウンターは、Windows イベント トレーシング サブシステムのパフォーマンスについて、システム全体のメトリックを示します。 |
Event Tracing for Windows Session | MultiInstance | このコレクションのカウンターは、個々の Windows イベント トレーシング セッションに関連しています。 |
HTTP Service | SingleInstance | HTTP サービス カウンターのセット |
HTTP Service Request Queues | MultiInstance | 要求キュー カウンターのセット |
HTTP Service Url Groups | MultiInstance | URL グループ固有カウンターのセット |
ICMP | SingleInstance | ICMP オブジェクト タイプには、ICMP プロトコルを使用しているシステムによって送受信された ICMP メッセージの数を示すカウンターがあります。ICMP プロトコルに関する各種のエラー数もこのタイプのカウンターでカウントされます。 |
ICMPv6 | SingleInstance | ICMP オブジェクト タイプには、ICMP プロトコルを使用しているシステムによって送受信された ICMP メッセージの数を示すカウンターがあります。ICMP プロトコルに関する各種のエラー数もこのタイプのカウンターでカウントされます。 |
IPHTTPS Global | MultiInstance | このコンピューターでの IPHTTPS サーバーの統計です。 |
IPsec Driver | SingleInstance | IPsec Driver は、インターネット プロトコル バージョン 4 とインターネット プロトコル バージョン 6 を介したトラフィックに適用されるインターネット プロトコル セキュリティ (IPsec) ドライバー カウンターのセットです。 |
IPv4 | SingleInstance | IP パフォーマンス オブジェクトには、IP プロトコルを使用して送受信される IP データグラムの速度を計測するカウンターがあります。IP プロトコルのエラーを監視するカウンターがあります。 |
IPv6 | SingleInstance | IP パフォーマンス オブジェクトには、IP プロトコルを使用して送受信される IP データグラムの速度を計測するカウンターがあります。IP プロトコルのエラーを監視するカウンターがあります。 |
Job Object | MultiInstance | アクティブに名前を付けられたジョブ オブジェクトによって収集されたアカウンティングおよびプロセッサの使用データのレポートです。 |
Job Object Details | MultiInstance | ジョブ オブジェクトを作成するアクティブなプロセスについての詳細なパフォーマンス情報を表示します。 |
LogicalDisk | MultiInstance | Logical Disk パフォーマンス オブジェクトには、ハード ディスクまたは固定ディスク ドライブの論理パーティションを監視するカウンターがあります。パフォーマンス モニターは、論理ディスクを C などのドライブ文字で認識します。 |
Memory | SingleInstance | Memory パフォーマンス オブジェクトには、物理メモリおよび仮想メモリの動作を表示するカウンターがあります。物理メモリはランダム アクセス メモリの領域です。仮想メモリは物理メモリ内とディスク上の領域からなります。メモリのカウンターの多くは、ページング (ディスクと物理メモリの間で起こるコードとデータのページ移動) を監視します。過度なページングによるメモリ不足は、システム処理の遅延の原因となります。 |
MSDTC Bridge 3.0.0.0 | SingleInstance | MSDTC Bridge 3.0.0.0 パフォーマンス カウンタ |
MSDTC Bridge 4.0.0.0 | SingleInstance | MSDTC Bridge 4.0.0.0 パフォーマンス カウンター |
NBT Connection | MultiInstance | NBT 接続パフォーマンス オブジェクトには、ローカル コンピューターとリモート コンピューター間の NBT 接続に送受信されるバイトの速度を計測するカウンターがあります。接続は、リモート コンピューターの名前によって認識されます。 |
Network Inspection System | SingleInstance | Network Inspection System service performance counters |
Network Interface | MultiInstance | Network Interface パフォーマンス オブジェクトには、TCP/IP ネットワーク接続で送受信されるバイトとパケットの率を計測するカウンターがあります。接続エラーを監視するカウンターも含まれます。 |
Objects | SingleInstance | Object パフォーマンス オブジェクトには、プロセス、スレッド、ミューテックスおよびセマフォなどのシステムの論理オブジェクトを監視するカウンターがあります。このカウンターの情報によって、不必要なリソースの消費を検出できます。 各オブジェクトは、オブジェクトの基本情報を格納するメモリが必要です。 |
Offline Files | SingleInstance | オフライン ファイルのパフォーマンス カウンター |
Pacer Pipe | MultiInstance | Pacer Pipe のパフォーマンス カウンター セットは、パケット スケジューラからのパイプ統計で構成されます。 |
Paging File | MultiInstance | Paging File パフォーマンス オブジェクトには、ページング ファイルを監視するカウンターがあります。ページング ファイルは、コミットされた物理メモリをバックアップするディスクで予約された領域です。 |
Per Processor Network Activity Cycles | MultiInstance | Per Processor Network Activity Cycles カウンター セットは、各プロセッサにおけるインターフェイスのネットワーク活動に伴うプロセッサ サイクルを計測します。 |
Per Processor Network Interface Card Activity | MultiInstance | Per Processor Network Interface Card Activity カウンター セットは、プロセッサごとにネットワーク インターフェイスのネットワーク活動を計測します。 |
PhysicalDisk | MultiInstance | Physical Disk パフォーマンス オブジェクトには、ハード ディスクまたは固定ディスク ドライブを監視するカウンターがあります。ディスクは、ファイル、プログラム、ページング データの格納に使用され、これらを取り出すために読み取られたり、変更を記録するために書き込まれたりします。物理ディスク カウンターの値は、分割された論理ディスク (またはパーティション) の合計値となります。 |
Print Queue | MultiInstance | 印刷キューに関するパフォーマンス統計情報を表示します。 |
Process | MultiInstance | Process パフォーマンス オブジェクトには、実行中のプログラムとシステム処理を監視するカウンターがあります。プロセス内のすべてのスレッドは同じアドレス領域を共有し、同じデータへアクセスします。 |
Processor | MultiInstance | Processor パフォーマンス オブジェクトには、プロセッサの処理状況のアスペクトを計測するカウンターがあります。プロセッサは、算術および論理計算の実行、周辺機器の操作の初期化、プロセスのスレッドの実行を行うコンピューターの一部です。コンピューターには複数のプロセッサを実装可能です。プロセッサ オブジェクトは、各プロセッサをオブジェクトのインスタンスとして表します。 |
Processor Information | MultiInstance | プロセッサ情報パフォーマンス カウンター セットには、プロセッサの処理状況のアスペクトを計測するカウンターがあります。プロセッサは、算術および論理計算の実行、周辺機器の操作の初期化、プロセスのスレッドの実行を行うコンピューターの一部です。コンピューターには複数のプロセッサが存在します。プロセッサ情報カウンター セットは、各プロセッサをカウンター セットのインスタンスとして表します。 |
RAS Port | MultiInstance | RAS オブジェクトの種類は、お使いのシステムの RAS デバイスの各ポートを処理します。 |
RAS Total | SingleInstance | RAS オブジェクトの種類は、お使いのシステムの RAS デバイスのすべてを統合したポートを処理します。 |
ReadyBoost Cache | SingleInstance | ReadyBoost キャッシュに関するパフォーマンス統計情報を表示します。 |
Redirector | SingleInstance | Redirector パフォーマンス オブジェクトには、ローカル コンピューターから発信されるネットワーク接続を監視するカウンターがあります。 |
Server | SingleInstance | Server パフォーマンス オブジェクトには、ローカル コンピューターとネットワーク間の通信を計測するカウンターがあります。 |
Server Work Queues | MultiInstance | Server Work Queues パフォーマンス オブジェクトには、キューの長さおよびキュー内のオブジェクトを監視するカウンターがあります。 |
ServiceModelEndpoint 3.0.0.0 | MultiInstance | ServiceModelEndpoint 3.0.0.0 パフォーマンス カウンタ |
ServiceModelOperation 3.0.0.0 | MultiInstance | ServiceModelOperation 3.0.0.0 パフォーマンス カウンタ |
ServiceModelService 3.0.0.0 | MultiInstance | ServiceModelService 3.0.0.0 パフォーマンス カウンタ |
SMSvcHost 3.0.0.0 | SingleInstance | SMSvcHost 3.0.0.0 パフォーマンス カウンタ |
SMSvcHost 4.0.0.0 | SingleInstance | SMSvcHost 4.0.0.0 パフォーマンス カウンター |
Synchronization | MultiInstance | カーネル同期のためのカウンターで構成されます。同期オブジェクトは、各プロセッサをオブジェクトのインスタンスとして表します。 |
System | SingleInstance | System パフォーマンス オブジェクトには、コンポーネント プロセッサの複数のインスタンスに適用されるカウンターがあります。 |
TCPv4 | SingleInstance | TCP パフォーマンス オブジェクトでは、TCP プロトコルを使用して送受信される TCP セグメントの率を計測するカウンターがあります。各 TCP 接続状態における TCP 接続数を監視するカウンターも含まれます。 |
TCPv6 | SingleInstance | TCP パフォーマンス オブジェクトでは、TCP プロトコルを使用して送受信される TCP セグメントの率を計測するカウンターがあります。各 TCP 接続状態における TCP 接続数を監視するカウンターも含まれます。 |
Telephony | SingleInstance | テレフォニー システムです。 |
Teredo Client | MultiInstance | Teredo クライアントの統計です。 |
Teredo Relay | MultiInstance | このコンピューター上でホストされている Teredo リレーの統計です。 |
Teredo Server | MultiInstance | このコンピューターでホストされている Teredo サーバーの統計です。 |
Terminal Services | SingleInstance | ターミナル サービス要約情報 |
Terminal Services Session | MultiInstance | ターミナル サービス各セッションのリソース モニターです。 |
Thread | MultiInstance | Thread パフォーマンス オブジェクトには、スレッド動作のアスペクトを計測するカウンターがあります。スレッドはプロセッサ上で命令を実行する基本オブジェクトです。実行中のすべてのプロセスには、少なくとも 1 つのスレッドがあります。 |
UDPv4 | SingleInstance | UDP パフォーマンス オブジェクトには、UDP プロトコルを使用して送受信される UDP データグラムの速度を計測するカウンターがあります。UDP プロトコル エラーを監視するカウンターがあります。 |
UDPv6 | SingleInstance | UDP パフォーマンス オブジェクトには、UDP プロトコルを使用して送受信される UDP データグラムの速度を計測するカウンターがあります。UDP プロトコル エラーを監視するカウンターがあります。 |
USB | MultiInstance | USB I/O カウンター |
WF (System.Workflow) 4.0.0.0 | MultiInstance | Windows Workflow Foundation パフォーマンス カウンター |
WFP | SingleInstance | WFP は、特定のインターネット プロトコル バージョンに適用しない Windows Filtering Platform カウンターのセットです。 |
WFPv4 | SingleInstance | WFPv4 は、インターネット プロトコル バージョン 4 を介したトラフィックと接続に適用される Windows Filtering Platform カウンターのセットです。 |
WFPv6 | SingleInstance | WFPv6 は、インターネット プロトコル バージョン 6 を介したトラフィックと接続に適用される Windows フィルタリング プラットフォーム カウンターのセットです。 |
Windows Workflow Foundation | MultiInstance | Windows Workflow Foundation パフォーマンス カウンタ |
CategoryName | CategoryType | CategoryHelp |
Ubuntu 11.04 (Mono 2.10)
CategoryName | CategoryType | CategoryHelp |
.NET CLR Exceptions | Unknown | |
.NET CLR Interop | Unknown | |
.NET CLR JIT | Unknown | |
.NET CLR Loading | Unknown | |
.NET CLR LocksAndThreads | Unknown | |
.NET CLR Memory | Unknown | |
.NET CLR Remoting | Unknown | |
.NET CLR Security | Unknown | |
ASP.NET | Unknown | |
Mono Memory | Unknown | |
Mono Threadpool | Unknown | |
Network Interface | Unknown | |
Process | Unknown | |
Processor | Unknown | |
CategoryName | CategoryType | CategoryHelp |