リソースモニタとかパフォーマンスカウンタとかでは、全体のCPU使用率だったり、今動いているプロセスのCPU使用率を収集することはできる。
しかし、どのプロセスのCPU使用率が高くなっているかを調べようと思うと、Windows Sysinternals > ダウンロード > プロセス > PsListってツールを使わんといかんらしい。
psListの使い方
> pslist.exe pslist v1.3 - Sysinternals PsList Copyright (C) 2000-2012 Mark Russinovich Sysinternals - www.sysinternals.com Process information for (ホスト名): Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time Idle 0 0 4 0 0 8:08:08.282 0:00:00.000 System 4 8 185 2987 152 0:03:55.795 2:15:27.652 …
って感じで、表示されるが、CPU使用率が表示されない。
これを下記のように5秒間、1秒間隔で表示すると、Pri(プロセスの優先順位)がCPU(CPU使用率)に変わって表示される。
> pslist.exe -s 5 -r 1 16:38:10 2015/02/20 Process information for (ホスト名): Name Pid CPU Thd Hnd Priv CPU Time Elapsed Time Idle 0 0 4 0 0 8:54:23.743 0:00:00.000 System 4 0 186 3056 152 0:04:16.496 2:28:26.457 … 16:38:11 2015/02/20 Process information for (ホスト名): Name Pid CPU Thd Hnd Priv CPU Time Elapsed Time Idle 0 85 4 0 0 8:54:27.752 2:28:27.707 NTRTScan 1400 7 40 537 15804 0:06:10.112 2:28:22.425 … 16:38:13 2015/02/20 Process information for (ホスト名): Name Pid CPU Thd Hnd Priv CPU Time Elapsed Time Idle 0 91 4 0 0 8:54:32.136 2:28:28.967 pslist 6648 4 2 168 3184 0:00:00.561 0:00:02.810 … 16:38:14 2015/02/20 Process information for (ホスト名): Name Pid CPU Thd Hnd Priv CPU Time Elapsed Time Idle 0 92 4 0 0 8:54:36.551 2:28:30.227 pslist 6648 3 2 168 3184 0:00:00.733 0:00:04.070 … 16:38:15 2015/02/20 Process information for (ホスト名): Name Pid CPU Thd Hnd Priv CPU Time Elapsed Time Idle 0 92 4 0 0 8:54:40.981 2:28:31.507 pslist 6648 3 2 168 3184 0:00:00.889 0:00:05.350 …
実際のCPU使用率の取得
実行時にライセンス承諾のダイアログが表示されるため、タスクスケジューラでバッググランドで実行する場合には、/accepteula ってオプションを付加して、ライセンス承諾のダイアログをスキップさせる必要がある。
実際にタスクスケジューラで記録させる場合は、以下のようなバッチファイルで取得できた。
cd /d D:\CPU負荷調査 set TM=%time: =0% set DT=%date:~-10,4%%date:~-5,2%%date:~-2,2%%TM:~0,2%%TM:~3,2%%TM:~6,2% .\PSTools\pslist.exe /accepteula -s 300 -r 1 > pslist_%computername%_%DT%.log