Windows7で画面オフ時にCPU使用率が高くなる原因を特定し解決する方法

私はパソコンを使用している間、「タスクマネージャ」をずっと開いたままにしている。
「タスクマネージャ」とは以下の画像のようなものだ。
Windowsのタスクマネージャ

なぜこれを開いたままにしておくかというと、パソコンの動作が重くなった時、完全にフリーズしてしまっているのか、それとも何かの処理待ちなのかをすぐに判別するためである。
上段のグラフがCPU使用率を示しているので、ここが高くなっているときはパソコンの動作が重くなることになる。

症状発見の経緯

しばらくの間パソコンを放置しておくと、私の設定では20分経つと画面の電源がオフになる。
ディスプレイの電源を自動でオフにする設定

画面オフになった後、マウスを操作するなどして画面の電源をオンにすると、タスクマネージャのCPU使用率が毎回このようになっていた。
画面オフ時のCPU使用率
つまり、画面オフの間だけずっとCPUが25パーセント程度動き続けていることになる。
これは電力の無駄だ。

このパソコンのCPUは「Core 2 Quad Q9550」というものであり、2014年現在でもそこそこの性能である。
それを25パーセントもずっと使うとは何事だ。
それ以前に自分の知らないところで何かのソフトが稼働し続けているのも気に入らない。
ウイルスやスパイウェア的なものが何かのデータを勝手に送信していても困る。

基本的にはタスクマネージャのプロセスを見れば特定できる

通常このような場合、タスクマネージャの「プロセス」タブを開けば、どのプロセス(ソフト)がCPUのパワーを占有しているのかをすぐ特定できる。
特定し、そのプロセスを強制終了してしまえばそれでCPU使用率は下がり、パソコンの動作の重さも元に戻る。

しかし今回のケースの場合は画面オフ時にだけCPU使用率が上がっており、マウス操作をした途端CPU使用率も0に戻るため、タスクマネージャで問題のプロセスを特定することができない。
今回はこれを特定する方法を解説しよう。

原因を特定する手順

まず、CPU使用率やプロセスの稼働状況を自動的に記録するため、「PsList」というソフトをダウンロードする。(インストール不要)

次に、コマンドプロンプトを開く。
コマンドプロンプトとはWindowに標準で入っている以下のようなソフトである。
コマンドプロンプトの画面

起動するためには、「スタートメニュー」 → 「すべてのプログラム」 → 「アクセサリ」の順に開いていってもいいし、「ファイル名を指定して実行」から「cmd」と打ち込む方法でもよい。

そして先ほどダウンロードしたPSListフォルダの中のpslist.exeにアクセスし、実行する。
その際、オプションの記述を追加することで、「記録する秒数」と「記録する頻度」を指定することができる。

仮にこのPSListフォルダをデスクトップに置いていると仮定し、10分間(600秒)の間「5秒おき」に記録する場合、

C:¥Users¥ここにユーザー名¥Desktop¥PSTools¥pslist.exe -s 600 -r 5 > C:¥Users¥ここにユーザー名¥Desktop¥process.log

というような記述になる。(この記述はWindow7であり、Windows7以外だとディレクトリ構造が少し違うかもしれません)
ちなみに途中にある「>」以降に「記録するファイルの場所」と「ファイル名」を記述する。(上記コードの場合はデスクトップにprocess.logというファイル名)

成功すると、このprocess.logのファイルには以下のようなものが記録されている。
記録したログファイルの中身

この多くのデータを見るとそれだけで拒否反応を起こす方もいるかもしれないが、実は見るべきポイントは少ない。
見るのは「記録した時間」と「CPU使用率」だけである。(下画像参照)
記録時間とCPU使用率を確認する

パソコンを何も操作していなければ以下のように「Idle」というプロセスがCPU使用率を占有している。(つまりアイドリング状態)
アイドリング状態のプロセス

そして画面オフになってからの記録を確認すると、特定のプロセスがCPUパワーを使っていることがわかる。(5分後に画面オフになるよう事前に設定を変更してあります)
CPUパワーを占有しているプロセス

私のこの例の場合、dwm.exeとSetPoint.exeというプロセスが画面オフ時にCPUパワーを占有していることがわかる。

調べた結果、dwm.exeというのはWindow7に必ず入っているものであり、SetPoint.exeというのはロジクールのマウスに関するソフトであった。
つまり、このロジクールのソフトをアンインストール、または常駐させない設定にすればOKである。