okayurisotto.net

私が好きでやったことが他の人のためにもなったらお得かも!

【Windows 11】パフォーマンスモニターで各プロセスのCPU使用率などを分析する

公開日:

はじめに

この記事では、Windowsに標準搭載された「パフォーマンスモニター」というツールを使った、パソコンの各プロセスがどれだけリソースを使用しているのか詳しく調べる方法を紹介する。この「パフォーマンスモニター」は、タスクマネージャーよりも詳細にシステムパフォーマンスを追跡できる優れたツールだ。

なおWindows 11 Home Editionを前提に話を進めていくが、他のバージョン・エディションでもさほど違いはないと思われる。

パフォーマンスモニターとは?

パフォーマンスモニター(通称「perfmon」)は、Windowsに標準搭載されたツールで、システムの様々なパフォーマンス統計を視覚化しながら確認できる。また、統計情報はCSVなどの形式でエクスポートすることもできるため、スプレッドシートなど外部のツールで分析することも可能という優れ物。

なお、パフォーマンスモニターは「リソースモニター」とは別のツールだ。タスクバーの検索窓に「パフォーマンスモニター」と入力したとき、なぜかリソースモニターが上位に表示されるという不具合じみた挙動が私のパソコンでは見受けられたが、これらは異なるツールだ。リソースモニターも有用なものではあるが、ここではパフォーマンスモニターを用いた統計情報の取得に焦点をあてて話していく。

パフォーマンスモニターを手っ取り早く起動するには、「Win+R」のキーボードショートカットから、「ファイル名を指定して実行」を開き、「perfmon」と入力するとよい。

基本的な概念

パフォーマンスモニターでの統計情報の取得では、

  1. データコレクターセットの新規作成
  2. そのデータコレクターセットに任意のパフォーマンスカウンターを追加
  3. データコレクターセットを起動(開始)し、レポートを作成
  4. 作成されたレポートを表示し、不要なデータを削除
  5. 欲しいデータをCSVなどの形式で保存

といった流れを踏むことになる。

データコレクターセットとは、「どのパフォーマンスを計測するか」などを定義するための概念で、実際に計測する項目(パフォーマンスカウンター)を複数持つ。

使い方

ここからは、任意のプロセスがどれだけCPUとメモリを使用しているか調べてみることを例に、使い方を説明する。

データコレクターセットを新規作成する

データコレクターセットを新規作成している様子

パフォーマンスモニターのウィンドウの左側にあるサイドバーから、「データコレクターセット」→「ユーザー定義」を右クリックし、「新規作成」を選択する。すると起動したウィザードから、どういったデータコレクターセットを作成するか尋ねられるため、それっぽいものを選択していく。「Basic」テンプレートを使うのがよい。

途中、データの保存場所が尋ねられる。デフォルトでは%systemdrive%\PerfLogs\Admin\<ここに名前>となっていることだろう。これは(ほとんどの環境では)C:\PerfLogs下にレポートが保存されるということ。このパスはあとで使うことになるかもしれないため、一応意識しておくとよい。

データコレクターセットへパフォーマンスカウンターを追加する

データコレクターセットへパフォーマンスカウンターを追加している様子

作成したデータコレクターセットをサイドバーで選択し、メインカラムの「Performance Counter」をダブルクリックすると、パフォーマンスカウンターを追加できるプロパティウィンドウが開かれる。左側の「使用可能なカウンター」から任意の項目を選び、追加ボタンを押して右側へ追加していく。

とてもたくさんの種類のカウンターが表示されるため迷子になってしまいそうだが、今回必要としているのは「任意のプロセスがどれだけCPUとメモリを使用しているか」という情報だけ。よって使用するカウンターは、

  • Process / % Processor Time
  • Process / Working Set

の2種類だけ。それぞれCPUとメモリの使用量に対応しているらしい。

ここで気を付けるべきは、「インスタンス」として「<すべてのインスタンス>」を選んでおくということ。インスタンスとは、ここでは各プロセスに対応している。もし「_Total」を選んでいた場合、すべてのプロセスを合計した使用率が取得されることになってしまう。(ここで特定のプロセスのみを選んでおくというのも一つの手だが、いらないデータについてはあとからいくらでも削除できるので、多めに取得しておいても困ることはあまりないだろう。すべてのインスタンスを選んでおくのが安心だ。)

データコレクターセットを起動(開始)し、レポートを作成する

サイドバーに表示されたデータコレクターセットを右クリックメニューから開始することで、パフォーマンス計測をスタートできる。

計測はデフォルトでは1分後に自動停止するよう設定されています。もし変更したい場合は、そのデータコレクターセットを右クリックし、プロパティを開き、「停止条件」タブから自動停止を無効にするとよい。

レポートを表示し、不要なデータを削除する

計測完了後に、作成されたレポートを確認できる。サイドバーからレポートを選択し、ウィンドウ上部に並んだアイコンから、グラフアイコン(黒背景に赤い線のもの)をクリックすることで視覚的なグラフによって確認できる。

レポートとして記録されたデータをグラフで表示している様子

すべてのインスタンスについてパフォーマンスを計測するようにカウンターを設定していたため、グラフにはたくさんの線が描かれてしまっていることだろう。グラフ下の一覧から、不要なカウンターは削除可能だ。

CSVなどの形式で保存する

グラフ上を右クリックし、「データを保存」からCSVやTSV形式でエクスポートできる。Excelなどのスプレッドシートで追加の分析や可視化が可能……というより、流石にパフォーマンスモニターの貧相な可視化は扱いにくいことが多いので、普通にスプレッドシートに吐き出して調理することを勧める。

おわりに

Windowsの標準ツールであるパフォーマンスモニターは、タスクマネージャーでは確認できないような詳細なデータを収集できる便利なツールだ。システムパフォーマンスの分析や、アプリケーションのパフォーマンス測定にぜひ役立ててみてほしい。