パフォーマンスモニタ徹底攻略マニュアル

 
COMPUTERWORLD.jpさんで、
「パフォーマンスモニタ徹底攻略マニュアル」という記事を書かせていただきました。
 
Windows Server World時代に書いた原稿が元になっていますが、
Windows Server 2008 R2でも利用できる情報だと思いますので、ご興味があれば見てもらえればと思います。
今回、掲載されたのはPart1ですが、この後、Part2、Part3と掲載される予定だそうです。
Part2~Part3はより実践的な内容になっているのでご期待くださいませ。
 
 
今日は、冒頭にパフォーマンスモニタの話が出てきたので、フォローアップということで、
ちょっとした活用方法を紹介したいと思います。
 
パフォーマンスモニタで長期的な傾向などを調べるとき、「データコレクタセット」という機能を使います。
データコレクタセットには、いつデータの収集を開始するか?という開始条件を指定する項目があるのですが、
時間での指定しかできません。
そのため、ある特定の事象が発生したときに、データ収集を開始する
というアクションを起こしたいときなどには時間の指定では意味がありません。
 
そこで、いつでもデータコレクタセットを開始できるよう、
あらかじめ定義しておいたデータコレクタセットを任意のタイミングで実行できるような、
以下のPowerShellスクリプトを作ってみました。
 


$dcs=New-Object -ComObject PLA.DataCollectorSet
$dcsName="checkCPU"
$pcName="dc01"

$dcs.Query($dcsName, $pcName)
$dcs.Start($false)

 
データコレクタセットの実行には、IDataCollectorSetというインターフェイスを使っています。
2行目は開始したいデータコレクタセットの名前、
3行目はデータコレクタセットのあるコンピュータの名前をそれぞれ入れます。
(Queryメソッドを実行しないとStartメソッドを実行できないことに気がつくまで時間がかかった。。) 
ちなみに最後の行は、$dcs.Stop($false)とすれば、停止させるスクリプトにもなります。
 
 
このようなスクリプトを作って、いつでもデータコレクタセットを実行できるようにしておけば、 
特定の事象が発生したときに、
 
特定のイベントログ記録 → タスクスケジューラでタスク(上記のスクリプト)実行
 
のような連携もできるわけです。
 
■参考
MSDN IDataCollectorSet Interface