【CPU負荷計測】WindowsPerformanceRecorder(CLI版WPR)でデータ採取しWindowsPerformanceAnalyzer(WPA)で解析する

負荷計測系記事
https://tera1707.com/entry/2022/02/06/144447#Profile

やりたいこと

以前、WPRのUIがある版でCPU使用率のログを取ったが、

WPRのCLI版でもできるらしいのでやってみる。

前提

  • Win11 home
  • 22H2 22621.1413

やったこと(とりあえずデータをとる)

それほど難しいことをせずに、CPU使用率のログを取れた。

とりあえずログを取るだけなら、管理者権限でコマンドプロンプトを開いて、

これでデータ取りをスタートして、

wpr -start CPU

これでデータ取りをストップして、結果をファイルに書き出せばOK。

wpr -stop MyLogfile.etl

※「MyLogfile.etl」は好きなログファイル名にする。

これで出来たetlは、WPRUIでも使ったWPAで開くことができるので、そちらで解析を行う。

おそらくもっと細かい制御をできそうだが、いったんこれで事足りたので、これ以上はそれが必要になってから調べる。

やったこと 追記(軽量なデータをとる)

WPRのコマンドラインではなくUIのあるほう(WPRUI)でログ(.etl)を取った際、.2023年5月時点で、NET7のプロセスがいるとエラーでWPAで解析ができないということがあった。

【CPU負荷計測】WindowsPerformanceRecorderUI(WPRUI)でデータ採取しWindowsPerformanceAnalyzer(WPA)で解析する - tera1707’s blog

その際、WPRUIでログを取るときに「Light」を指定してやるとエラーなくWPAで見れた。

それと同じように、WPRのCLIのほうでも、Lightでデータを取りたかったので、そのやり方を調べた。

結論、下記のようにすればよい。

wpr -start GeneralProfile.Light

GeneralProfileというのは、標準のプロファイルのうちの一つで、とにかく初期調査段階ではこのプロファイルでデータ取ればよさそう。

標準のプロファイルは、引数なしの-profilesオプションで一覧を見れる。

wpr -profiles

これを実行すると、こういうのが出てくる。

一番上に、今回使った「GeneralProfile」がいて、説明が「First Level Triage」とある。最初の問題切り分け、的な意味だと思うので、これをまずは使うのがよさそう。(で、CPUを特に見たい、とかなったら、「CPU」を使えばいいのかも。(未検証。GeneralProfileとCPUで取れるデータがどう違うのか、いずれ見てみたい))

さらに、組み込みプロファイルには、軽量(Light)と冗長(Verbose)の2つのバージョンがあり、「GeneralProfile.Light」とか「GeneralProfile.Verbose」で指定できる。 なにも指定しないと(「GeneralProfile」だけを書くと)、Verbose扱いになる。

今回はLightにしたかったので、上のようにGeneralProfile.Lightにした。

参考

WPRのコマンドラインオプションの公式ページ

https://learn.microsoft.com/ja-jp/windows-hardware/test/wpt/wpr-command-line-options