S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

特定できないプロセスのCPU使用率の調査

リソースモニタとかパフォーマンスカウンタとかでは、全体の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