パフォーマンスカウンターからスクリプトを実行

TechEd2010のセッションでも登場しましたが、CPU使用率が90%を超えたらスクリプトを実行し、
トラブル回避を図るという方法を紹介しておきたいと思います。

■用意するもの(機能)
・[パフォーマンス]管理ツール
・[イベントビューアー]管理ツール
・[タスク スケジューラ]管理ツール
・パフォーマンスに問題があるときに実行したいスクリプト

■手順1
[パフォーマンス]管理ツールの[データコレクターセット]を使い、
[ユーザー定義]から新規にデータコレクターセットを作成します。
作成するデータコレクターセットは、テンプレートから作成ではなく、
手動で作成してください。すると、「パフォーマンスカウンターの警告」
を選択することができます。
パフォーマンスカウンターの項目では、実際に監視したい項目としきい値を設定します。
ここでは、CPU使用率を監視するProcessor%Processor Timeを90%のしきい値で
設定しておきます。

■手順2
手順1で作成したデータコレクターセットを右クリックし、[開始]をクリックします。
意外とこの手順、忘れやすいので注意してください。
しきい値に達すると、イベントビューアの[アプリケーションとサービスログ]-
[Microsoft]-[Windows]-[Diagnosis-PLA]にイベントID2031のログを残します。
事前にテストして、このログが残ることを確認しておくとよいでしょう。

■手順3
イベントID2031が記録されたら、スクリプトが実行されるよう、
[タスク スケジューラ]管理ツールを利用します。
[タスク スケジューラ]管理ツールで[タスクの作成]をクリックし、
タスクを作成します。
主な設定項目は以下のとおり。
・全般タブ 名前の設定
・トリガータブ イベントID2031の設定
・操作タブ 実行するスクリプトファイルのパスの指定

tasksch1 
タスクの新規作成でトリガーとなるイベントを指定している画面

以上です。あとは、しきい値を超える(今回の場合はCPU使用率90%超)ようなことが
起きた場合、スクリプトが自動的に実行されるようになります。

ちなみに、[パフォーマンス]管理ツールの「パフォーマンスカウンターの警告」を
使うと、データコレクターセットのプロパティから、しきい値に達した時の動作を
定義することができます。ですが、なぜか私の環境では動作しなかったので、
今回はこのような方法を紹介させていただきました。