◆パフォーマンスモニタ

[ ホーム ] [ 上へ ] [ パフォーマンスモニタ VC++編 その1 ] [ パフォーマンスモニタ VBA編 その1 ] [ パフォーマンスモニタ again 〜 レジストリデータを使ってモニタリング ] [ パフォーマンスモニタ returns 〜 カスタムパフォーマンスモニタの作成 その1 ]

・パフォーマンスモニタについて

「パフォーマンスモニタ」とはCPU、HDD、メモリ、プリンタなどの ハードウェアリソースの活動状況や、サーバーなどのコンポーネントの活動状況を リアルタイムに監視するユーティリティです。特にDBサーバのボトルネックを見つけたり、 コンポーネントのハードウェアリソースの占有度を確認したりするのにたいへん 有難いユーティリティかと感じてます。

実際どんな感じなのかはCtrl + Alt + Deleteキーでタスクマネージャを 起動してパフォーマンスタブをクリックしてください。CPU使用率、ページファイル使用量 などいろいろな活動状況が確認できます。
また、コントロールパネル→管理ツール→パフォーマンス(Windows XP)でも以下のような ダイアログが表示され状況が確認できます。

最初に監視対象についてざっくり書きましたが、具体的に 「どのようなリソース」の「どんな活動」が 監視できるかを知らないと何も始まらないのですが、そのためには以下のキーワードが必要に なってきます。
1.マシン名
2.パフォーマンスオブジェクト
3.カウンタ
4.インスタンス

1.マシン名 ・・・書くまでもないですね。監視対象のコンピュータ名です。 以後はローカルマシンに限って書いていきます。

2.パフォーマンスオブジェクト ・・・監視対象のリソースです。「どのようなリソース」に対応する部分です。
具体的にはハードウェアではCPUやメモリ、ハードディスクドライブなどが、ソフト的にはプロセスやIISや SQL Serverなどがこれにあたります。

3.カウンタ ・・・「カウンタ」なんて名前だから分かりづらいですが(私も戸惑いました)、 リソースの活動の種類、「どんな活動」の部分です。 例えば、メモリオブジェクトでしたら、物理メモリ利用可能サイズやキャッシュの 使用量など様々なものがあります。

4.インスタンス ・・・上記のメモリの場合は存在しないですが、プロセス(Process)やスレッド(Thread)オブジェクト にはインスタンスがあります。例えばプロセスオブジェクトですが、 iexplorer(インタネットエクスプローラ)やExcelなどいくつものプロセスが動いていて それぞれがインスタンスになります。

いくつか以下にいくつか例を挙げてみます(Windows XPにて確認)

オブジェクト カウンタ 説明
ハードディスク(PhysicalDisk) % Disk Time ドライブの書込・読込でビジー状態の時間の割合
Disk Transfers/sec ディスク上の読込・書込操作の速度
% Idle Time サンプリング期間内のディスクアイドル時間の割合
CPU (Processor) % Processor Time 非アイドル状態のスレッドに使われた時間の割合(CPU使用率)
メモリ(Memory) Available Bytes 実行中プロセスの利用可能物理メモリ量
Cache Bytes システム・ファイル・キャッシュの使用量
印刷キュー(Print Queue) Total Pages Printed 印刷処理済ページ数
Bytes Printed/sec 印刷キューで印刷される1秒あたりのバイト数
プロセス(Process) Elapsed Time 該当プロセスの総経過時間
Thread Count 該当プロセスでアクティブなスレッド数
サーバ(Server) Bytes Total/sec サーバがネットワーク間で送受信したバイト数
Server Sessions サーバ上で現在アクティブなセッション数

これはほんの一部で、私の環境ではオブジェクトだけでも100ほど、 それぞれのオブジェクトに数個から100強のカウンタがあります。また、オブジェクトの中には インスタンスが存在するものがあるので、組み合わせは膨大になります。

他にどんなオブジェクト・インスタンス・カウンタがあるかは以下で確認ができます。(Windows XP)
1. こちらのパフォーマンスダイアログを表示してください。
2.右ペインの下部のリストビューにモニタしているカウンタがあるかもしれませんが、かまわず そこを右クリックすると「カウンタの追加(D)」のフロートメニューが現れるのでクリックすると 以下のダイアログが表示されます。

これでパフォーマンスオブジェクトを選択すると選べる カウンタ/インスタンスがリストボックスに表示されます。また、カウンタ名だけでは どんな監視するか分からないので、説明ボタンをクリックすると内容が表示されます。

これでもいいのですが見通しがわるいのでVC++ 2005、VBAでオブジェクト・ インスタンス・カウンタとその説明を一覧として取得してみます。 その後でプログラムで既存のカウンタを使って実際に監視(モニタ)してみます。