Grow up

生活とプログラミング

Windows Server のパフォーマンスログを定期的に保存する

概要

Microsoft SQL Server Support Blog のパフォーマンスログ採取手順を参考に、タスクスケジューラーを使ってデータベースを利用する時間帯だけログを保存するよう設定します。

techcommunity.microsoft.com

今回、ログの採取は以下の時間帯で行います。
・8:00 - 12:00

同じ設定で365日ログを採取する場合は約100GBの保存容量が必要です。

1. パフォーマンスモニターに採集対象のカウンタを追加

Microsoft SQL Server Support Blog よりダウンロードした PerfCollector_v1.0 の create.bat を実行します。

実行前

実行後

create.bat を実行すると、ユーザー定義に mytest という採集対象のカウンタが追加されました。

2. パフォーマンスログの採集を任意のタイミングで行う

手動で確認ができるように採集の開始と停止を行うbatファイルを作成します。

開始

# StartPerfCollect.bat
logman start mytest

停止

# StopPerfCollect.bat
logman stop mytest

確認のため StartPerfCollect.bat を実行すると、パフォーマンスモニターの mytest が実行中となります。

また実行中の状態になると、ログファイルが .blg の形式で保存されることを確認できます。
実行中はログのファイルサイズが 0 KB のままとなっています。

実行中の状態で StopPerfCollect.bat を実行すると、パフォーマンスモニターの mytest が停止します。

停止するとログの書き込みが行われたことでファイルサイズの増加が確認できました。

.blg のファイルをダブルクリックするとパフォーマンスモニターが起動してログを確認できました。

3. パフォーマンスログの採集を定期的に行う

タスクスケジューラを使用して特定の時間帯にログを採集します。
タスクの作成より、StartPerfCollect.bat と StopPerfCollect.bat を実行するタスクをぞれぞれ作成します。

開始
最上位の特権で実行するにチェックを入れます。

今回は毎日8:00に採集を開始します。

開始のため StartPerfCollect.bat を実行します。

停止
最上位の特権で実行するにチェックを入れます。

今回は毎日12:00に採集を停止します。

停止のため StopPerfCollect.bat を実行します。

タスクスケジューラに採集の開始と停止のタスクを作成したことでパフォーマンスログを定期的に保存できるようになりました。