Windowsパフォーマンスモニターを使用してキャパシティプランニングする方法



Windows標準パフォーマンスモニタは、リモートコンピュータ(サーバー・パソコン)のパフォーマンスログも収集可能


Windowsに標準でパフォーマンスモニターがあることはご存知だと思います。
このパフォーマンスモニターを自動で定期的にログローテーションさせ、キャパシティプランニングをすることを目的とします。
キャパシティプランニングや仮想化によるサイジングに使えます。
通常は、専用のツールやソフトを使用しキャパシティプランニングやサイジングを行いますが、Windows標準の機能であるパフォーマンスモニターでも可能になります。

パフォーマンスモニターを使用し、パフォーマンスログを自動収集するツールを、
Windows server 2003以前では、[カウンターログ]と言い
Windows server 2008では、[データコレクタセット]と言います。

実は、パフォーマンスモニタの実行アカウント権限さえあれば、Windows標準パフォーマンスモニターでリモートコンピュータ(サーバー)のパフォーマンスデータも取得することが可能です。
パフォーマンスカウンタの追加画面に、[次のコンピュータからカウンタを選んでください]というコンピュータ指定の項目があります
リモートコンピュータに対し、適切なアカウントアクセス権限が必要になります。


パフォーマンスカウンタの追加に面倒な場合は、logmanコマンドで一括でカウンタ追加登録も可能です。

Windows Server 2008 のパフォーマンスカウンター例: logmanコマンドで一括カウンタ追加登録した場合

Windows Server 2003 のパフォーマンスカウンター例: logmanコマンドで一括カウンタ追加登録した場合


Windows Server 2008の[信頼性とパフォーマンスモニター]、データコレクタセット作成方法

[信頼性とパフォーマンスモニター]の[データコレクトセット]-[ユーザー定義]を右クリックし、[新規作成]-[データコレクトセット]を選択すると、新しいデータコレクタセットのウィザードが開始されます。
標準で入っているカウンター等を使用した、[テンプレートから作成する]も選べます。

[手動で作成する]を選択した場合は、[データログ]として
  • パフォーマンスカウンタ
  • イベントトレースデータ
  • システム構成情報
を取得できます。


カウンターの追加では、ローカルコンピュータがデフォルト設定だが、リモートコンピュータも選択可能。
リモートサーバーを選択するには、リモートサーバーにアクセス件があるアカウントでデータコレクトセットを実行しなければならない。
リモートサーバーにアクセス出来るということは、Windowsドメイン「Active Directoryユーザー」が好ましい。
(ワークグループの場合も、同一ユーザー名・同一パスワードの別アカウント(サーバーが別)で実行することにより、リモートサーバーの取得は可能だが、複数のリモートサーバーのパフォーマンスログを取得することを考えると、アカウント的に厳しい場合が存在する)
リモートサーバー「\\SQL-SERVER」を指定した場合。


Windows Server 2008でのデータコレクトセットのスケジュール設定

(Windows server 2003では、カウンターログにスケジュール設定があったが、windows server 2008ではデータコレクトにスケジュール設定がある。)
スケジュールの開始時間は、上記データコレクトセットの[スケジュール]タブで設定できます。
スケジュールの停止も、[停止条件]タブで設定し、[全体の期間]を1日等にします。


パフォーマンスカウンタのプロパティ設定

データコレクタセット内の、種類パフォーマンスカウンタを選択し、プロパティを開きます。

パフォーマンスカウンタの追加や、ログフォーマット、サンプル間隔の設定が出来ます。



Windows Server 2003での[カウンタログ]、パフォーマンスカウンタのプロパティ


スケジュール設定が、カウンターログ内のプロパティにあります。
ログの開始時刻は選べますが、実は運用中パフォーマンスログを取り続けることが難しい設定になっています。

運用中、定期的にパフォーマンスカウンタログを取得し続ける方法

まずパフォーマンスカウンタログの設定では、
定期的にログファイル名に日付をつけながら変更して出力させたいとかWindows OSの再起動があることを考えると
  • ログ開始の[時刻]を既に過ぎた時間にする
  • ログ停止を[指定時間を経過後]設定で、25時間を選択
  • [ログファイルを閉じたときの操作]で、[新しいログファイルの開始]
と設定します。
しかし、上記のみのカウンタログの設定ではログが自動で停止してしまいます。

そのため、さらに追加作業としまして
Windows OSのタスクでパフォーマンスログサービスを一日一回0:00:00に再起動するタスクを設定します。

パフォーマンスログサービスの再起動サンプルバッチ:
@echo off

set X_LOGF=%~dpn0.log

echo %DATE% %TIME%>"%X_LOGF%"
echo # net stop sysmonlog>>"%X_LOGF%"
net stop sysmonlog>>"%X_LOGF%" 2>&1

echo # net start sysmonlog>>"%X_LOGF%"
net start sysmonlog>>"%X_LOGF%" 2>&1
サービス名Sysmonlogは、サービス表示名としては「Performance Logs and Alerts」になる。

これで定期的にパフォーマンスログファイルが日付ベースで切り替わり出力されます。
あとは、古いパフォーマンスログファイルを削除してあげるタスクを付け加える必要があります。
 

サブページ リスト

Comments