Windowsでパフォーマンスログを自動収集する方法

Windowsでパフォーマンスログを自動収集する方法

会社などで複数台のWindowsPCを管理していると、利用者から「なんか最近遅いんだけど」といった漠然とした問い合わせを受けることがあります。そんなとき、やみくもに調べても原因を特定するのは難しいでしょう。

そこで活用したいのがWindowsの標準機能である「パフォーマンスモニター」です。パフォーマンスモニターは、CPU、メモリ、ディスク、ネットワークをはじめとした、Windowsマシン上で動作しているさまざまなリソースの利用状況をリアルタイムに表示したり、ログとして採取できるツールで、クライアントPCでも日ごろからパフォーマンスログを自動的に採取するようにしておけば、いざトラブルが発生したときに、原因の調査でとても役立ちます。

そこでここでは、Windows 10でパフォーマンスモニターの「データコレクターセット」機能を使って、パフォーマンスログを継続的に自動収集する方法を紹介します。

データコレクターセットの作成

データコレクターセットの作成は、パフォーマンスモニター画面からGUI操作で作成したり、コマンド(logman create)で作成することができますが、コマンドでは細かな設定ができないため、ここではGUI操作で作成します。

パフォーマンスモニター画面からデータコレクターセットを作成する手順は、次のとおりです。

まず、パフォーマンスモニターを起動して、左ペインの「データコレクターセット」を展開して「ユーザー定義」を右クリックし、メニューから「新規作成」>「データコレクターセット」を順にクリックします。

Windowsでパフォーマンスログを自動収集する方法

データコレクターセットの作成ウィザードが起動するので、順に設定します。

データコレクターセットの名前は、任意の分かりやすい名前を付けて、作成方法は「手動で作成する」を選択して「次へ」をクリックします。

Windowsでパフォーマンスログを自動収集する方法

データの種類では「パフォーマンスカウンター」にチェックを入れて「次へ」をクリックします。

Windowsでパフォーマンスログを自動収集する方法

パフォーマンスカンターの選択画面では、まず「追加」をクリックします。

Windowsでパフォーマンスログを自動収集する方法

すると、カウンターの追加画面が表示されるので、必要なカウンターを追加します。

カウンターを追加するときは、次の順に操作して追加します。

  1. 追加するカウンターを選択
  2. オブジェクトのインスタンスを選択
  3. 「追加」をクリック

Windowsでパフォーマンスログを自動収集する方法

ここでは、トラブルシューティングに役立つ以下のカウンターを追加していますが、環境に応じて必要なカウンターを選択しましょう。

追加するカウンターオブジェクトのインスタンス
LogicalDiskすべてのインスタンス
Memory
Network Adapterすべてのインスタンス
Network Interfaceすべてのインスタンス
Paging Fileすべてのインスタンス
PhysicalDiskすべてのインスタンス
Processすべてのインスタンス
Processorすべてのインスタンス
Processor Informationすべてのインスタンス
System

必要なカウンターを追加したら「追加されたカウンター」で確認し「OK」をクリックします。

Windowsでパフォーマンスログを自動収集する方法

ウィザード画面に戻ったら、サンプル(収集)間隔を指定して「次へ」をクリックします。

収集間隔を短く設定すれば、ログから状況を把握しやすくなりますが、ログファイルのサイズは大きくなります。

ここでは「5秒」に設定していますが、最終的なサンプル間隔は、実際にログを収集してみて1時間当たりでログファイルのサイズがどれぐらいの大きさになるかを確認しながら、カウンターの数やサンプル間隔を調整しましょう。

Windowsでパフォーマンスログを自動収集する方法

ログの保存場所を設定して「次へ」をクリックします。

Windowsでパフォーマンスログを自動収集する方法

「このデータコレクターセットのプロパティを開く」を選択して「完了」をクリックします。

Windowsでパフォーマンスログを自動収集する方法

データコレクターセットのプロパティ画面が開くので「停止条件」タブで、一定間隔でログファイルを切り替えるよう設定します。

以下の例では「制限に達したらデータコレクターセットを再開する」にチェックを入れ「期間」に1日を設定して、1日ごとにログファイルを切り替えています。

Windowsでパフォーマンスログを自動収集する方法

短期間しかログを収集しない場合は、ログファイルを切り替えなくても良いですが、長期間に渡って継続的にログを収集する場合は、ログファイルを切り替えることで、下記で紹介している「古いログファイルを自動的に削除する」処理が可能となります。

ログファイルのフォーマットを変更

デフォルトでは、ログファイルはバイナリ形式で保存され、ログファイルを参照するにはパフォーマンスモニターにログファイルをロードする必要がありますが、収集したログファイルを表計算ソフトなどで読み込んだりしたい場合は、ログファイルをテキスト形式で保存することも可能です。

ログファイルのフォーマットを変更する手順は、次のとおりです。

パフォーマンスモニター画面で、作成したデータコレクターセットを選択し、右ペインに表示されるデータコレクターを右クリックしてメニューからプロパティ画面を開きます。

Windowsでパフォーマンスログを自動収集する方法

プロパティ画面の「パフォーマンスカウンター」タブにある「ログフォーマット」から「カンマ区切り」や「タブ区切り」を選択すれば、ログファイルをテキスト形式で保存できます。

Windowsでパフォーマンスログを自動収集する方法

古いログファイルを自動的に削除

長期間に渡ってログを収集すると、ログファイルが溜まってディスク容量を圧迫してしまうので、データコレクターセットの「データマネージャー」で、古いログファイルを自動的に削除するよう設定します。

古いログファイルを自動的に削除する手順は、次のとおりです。

パフォーマンスモニター画面で、作成したデータコレクターセットを右クリックして、メニューから「データマネージャー」をクリックします。

Windowsでパフォーマンスログを自動収集する方法

データマネージャーの設定画面が開くので「データ マネージャー」タブで、ログの保存ポリシーを設定します。

たとえば、ログの総容量が5GBを超えると、もっとも古いログから自動的に削除されるよう設定するには、次のように設定します。

  1. 「リソース ポリシー」で「もっとも古い物を削除」を選択
  2. 「ルートパスの最大サイズ」にチェックをいれ、フォルダの最大サイズに「5120」を設定
  3. 「データ管理とレポート生成を有効にする」にチェックを入れ「OK」をクリックします。

Windowsでパフォーマンスログを自動収集する方法

具体的な設定値は、ログを保存しておきたい期間、1日当たりのログファイルのサイズ、ディスクの空き容量などから調整しましょう。

古いログの削除処理は、データコレクターセットが停止するとき(PCを再起動したり、シャットダウンするとき)に行われるため、サーバーなど常時稼働しているマシンでは、タスクスケジューラなどから定期的にデータコレクターセットの停止と開始を行う必要があります。

データコレクターセットの開始

作成したデータコレクターセットでログ収集を開始するには、パフォーマンスモニター画面で、作成したデータコレクターセットを右クリックして、メニューから「開始」をクリックします。

Windowsでパフォーマンスログを自動収集する方法

コマンドで開始するには、管理者権限でコマンドプロンプトを起動して、以下のコマンドを入力します。

「New Data Collector Set」の部分には、作成したデータコレクターセットの名前を入力します。

> logman start "New Data Collector Set"

なお、データコレクターセットは、マシンをシャットダウンしたり再起動すると自動的に停止してしまうので、以下の記事を参考にマシン起動時に自動的にデータコレクターセットが開始するよう設定しておく必要があります。

Windows起動時にデータコレクターセットを自動開始させる方法
Windows起動時にデータコレクターセットを自動開始させる方法
Windowsの起動時にデータコレクターセットを自動的に開始させる方法として、タスクスケジューラやローカルグループポリシーを使った方法を紹介します。

データコレクターセットのエクスポート/インポート

作成したデータコレクターセットは、テンプレートファイル(XML形式)としてエクスポートでき、エクスポートしたテンプレートファイルは、別のマシンにインポートすることができます。

たとえば、1台のマシンでテンプレートとなるデータコレクターセットを作成して、テンプレートファイルとしてエクスポートしておけば、他のマシンでテンプレートファイルをインポートすることでカンタンに同一設定のデータコレクターセットを作成できます。

データコレクターセットをエクスポート/インポートする手順は、次のとおりです。

データコレクターセットのエクスポート

データコレクターセットをエクスポートするときは、パフォーマンスモニター画面で、作成したデータコレクターセットを右クリックして、メニューから「テンプレートの保存」をクリックします。

Windowsでパフォーマンスログを自動収集する方法

コマンドでエクスポートするには、管理者権限でコマンドプロンプトを起動して、以下のコマンドを入力します。

「New Data Collector Set」の部分には、作成したデータコレクターセットの名前を入力し「-xml」オプションの後には出力するファイル名を入力します。

> logman export "New Data Collector Set" -xml D:\sample.xml

データコレクターセットのインポート

エクスポートしたテンプレートファイルをインポートするときは、データコレクターセットの作成ウィザードで「テンプレートから作成する」を選択して、次画面で「参照」をクリックして、エクスポートしたテンプレートファイルを指定することでインポートできます。

Windowsでパフォーマンスログを自動収集する方法

Windowsでパフォーマンスログを自動収集する方法

コマンドでインポートするときは、管理者権限でコマンドプロンプトを起動して、以下のコマンドを入力します。

「New Data Collector Set」の部分には、任意のデータコレクターセット名を入力し「-xml」オプションの後にはインポートする ファイル名を入力します。

> logman import "New Data Collector Set" -xml D:\sample.xml

あとがき

会社で多くのWindowsPCを管理している場合は、日ごろからパフォーマンスログを収集しておくよう設定しておけば、トラブルが起こったときに、問題発生時のパフォーマンスログから、迅速かつ適切な調査ができます。

もちろん、パフォーマンスログだけで、原因を特定できるわけではありませんが、おおよそのあたりを付けられるという意味では、調査の初動で大いに役立ってくれるでしょう。