Windowsで負荷の大きいプロセスを特定する方法:Tech TIPS(2/2 ページ)
Windowsを使っていると、自分の操作とは別の理由で、システムの負荷が突然重くなったりすることがある。最悪のケースとしては、コンピュータウイルスが感染を広げたり、システムを破壊したりしている可能性もある。タスクマネージャーを使えば、このような場合に、一体どのプロセスがシステムの負荷を高めているかを知ることができる。
●Windows 8/8.1/Windows Server 2012/2012 R2の場合
以下ではWindows 8.1の画面を例として挙げているが、それぞれ説明している箇所についてはWindows 8/Windows Server 2012/2012 R2でも操作方法は共通である。
■[パフォーマンス]タブでCPU使用率の状態を確認する
まずは、タスクマネージャーの[パフォーマンス]タブを表示して、CPU使用率グラフに注目する。それにはタスクバー上の何も表示されていないところを右クリックし、表示されるポップアップメニューから[タスク マネージャー]を選ぶか、あるいは[Ctrl]+[Shift]+[Esc]キーを押す。タスクマネージャーが起動したら、左下隅にある[詳細]をクリックして詳細表示に切り替えてから[パフォーマンス]タブを選択すると、以下のような画面が表示される(この画面の基本的な使い方は、次の関連記事を参照していただきたい)。
- 関連記事: TIPS「パフォーマンスタブの見方(Windows 8/Server 2012編)」
タスクマネージャーの[パフォーマンス]タブ
この[パフォーマンス]タブでは、CPUの使用率やメモリ使用量など、現在のシステムの負荷状況を確認できる。何らかの負荷がCPUにかかっているかどうかを確認するには、(1)や(2)に注目する。
(1)パーセンテージの数値がCPU使用率。現時点でCPUにかかっている負荷を数値化したものだ。これを選択すると(2)が表示される。
(2)CPU使用率の履歴。(1)の負荷状況を時間を追って記録したもの。もしこのグラフが複数に分割表示されていて分かりにくいと感じたら、グラフ内を右クリックして表示されるメニューから[グラフを変更]−[全体的な使用率]を選ぶと単一のグラフで表示されるようになる。
(3)CPU使用率のうちカーネルモードで使用されている分(カーネル時間)。これにより、CPU負荷が高い原因がOSカーネル内部にあるのかどうか判断しやすくなる(詳細は別稿のTIPS参照)。これを表示するには、グラフ内をマウスで右クリックして表示されるメニューから[カーネル時間を表示する]を選ぶ(この項目がメニューに現れない場合は、グラフ下の横スクロールバーがなくなるまでタスクマネージャーのウィンドウ横幅を十分に延ばすこと)。
ここで、左上にある[CPU]のパーセンテージが「CPU使用率」を表している。また、これを選択すると右側に表示されるグラフが「CPU使用率の履歴」である。これらはそれぞれ、現時点でCPUにかかっている負荷を数値化したものと、その負荷状況を時間を追って記録したものである。CPU使用率の値が高いか、CPU使用率の履歴グラフで大きな負荷がかかった形跡があれば、原因はCPUに対する負荷であることが分かる。また、グラフ内を右クリックして表示されるメニューから[カーネル時間を表示する]を選択して、カーネル時間が表示されるようにすると、CPU負荷が高い原因がデバイスドライバやシステムプロセスといったOSカーネル内部にあるのかどうか判断しやすくなる(詳細はTIPS「カーネルモードとユーザーモードの負荷状況を見分ける方法」を参照)。
■[詳細]タブでCPU使用率の高いプロセスを特定する
次はタスクマネージャーの[詳細]タブ*1をクリックし、プロセス一覧の[CPU]や[CPU 時間]の値に注目する。その際、一覧の見出し部分を右クリックして表示されるメニューから[列の選択]を選び、「列の選択」ダイアログが表示されたら[CPU 時間]にチェックを入れてオンにしておく。
*1 [プロセス]タブにもプロセス一覧は表示される。CPUだけではなくメモリやディスク、ネットワークの負荷も同時に確認するには、[プロセス]タブの方がよく情報が絞り込まれていて分かりやすい。一方で、CPU使用率やCPU時間、あるいはそのほかの細かい項目を同時に確認したい場合は、項目の多い[詳細]タブの方が便利だ。目的に応じて使い分けるとよいだろう。
タスクマネージャーの[詳細]タブ
CPUに負荷をかけているプロセスを特定するには、ここで[CPU]と[CPU時間]項目に注目する。
(1)現時点でのCPU使用率。全てのプロセスの値を足し合わせると100(%)になる。
(2)プロセス開始から現在までのCPU使用時間の累積を秒単位で表した値。デフォルトでは表示されないので、(3)を右クリックして表示されるメニューから[列の選択]を選び、[CPU 時間]にチェックを入れてオンにして一覧に加えること。
(3)ここはボタンになっており、マウスでクリックすることで、その項目の値で一覧をソートできる。(1)あるいは(2)を値の大きい順にソートすると、CPU負荷の高いプロセスほど上側に並ぶため見つけやすくなる。
ここで[CPU]の値は、現時点でのそのプロセスのCPU使用率である。全てのプロセスのCPU使用率の値を足し合わせると、100(%)になる。この値が大きいほど、そのプロセスが現時点でCPUに対し大きな負荷をかけていることになる。従って、現在でも問題のプロセスがCPUに負荷をかけているなら、この値が大きなプロセスを見つけ出せばよい。
一方の[CPU 時間]の値は、そのプロセスが開始されてから、現在までに使用した累積のCPU時間を秒単位で表したものだ。例えば、負荷原因を追求しようとしてタスクマネージャーを起動したが、調査を開始するうちにCPU使用率が下がってしまうこともある。特にバックグラウンドでのサービスの処理は、必要に応じて起動・終了するので、このようなことが起こりがちだ。このような場合には、[CPU 時間]の値に注目する。[CPU]の値が小さくても、この値が大きければ、そのプロセスは継続的にCPUに負荷をかけていたことになる(ただし[CPU 時間]はプロセスが開始されてから現在までに使用したCPU時間なので、この値が大きいからといって、そのプロセスが直近の負荷増の原因だとは限らない点に注意すること)。
タスクマネージャーの[詳細]タブの一覧の見出し部分([イメージ名]、[PID]、[CPU]など)はボタンになっており、ここをマウスでクリックすると、その項目で一覧がソートされるようになっている。そこで今回のような目的では、[CPU]や[CPU 時間]の部分をクリックして、値の大きい順に一覧を並べ替えるとよい。
画面から分かる通り、[CPU 時間]や[CPU]の値が圧倒的に多く、リストの最上位にあるプロセスは「System Idle Process」である。これは、CPUがビジーでない(空きだった)時間を表すもので、通常はこれが最上位に表示される。このプロセスは、現在の負荷とは特に関係がないので無視してよい。
この例では、次に「chrome.exe」のプロセスがCPU時間「3:05:58」で続いている。これはWebブラウザ「Google Chrome」のプロセスだ。動的なコンテンツを含むWebページを開いたままにしておくと、しばしばCPU負荷が高まることがある。
大きな負荷の原因を調査するには、一定時間タスクマネージャーを表示したままにして、[CPU]や[CPU 時間]の値の増加が著しいプロセスがないかどうかに注目する。そのようなプロセスが存在した場合には、それが負荷原因である可能性が高い。その後の対処方法については、次の関連記事を参考にしていただきたい。
- 関連記事: TIPS「svchost viewerツールでsvchost.exeを調べる」
- 関連記事: TIPS「サービスのプロセスを特定する(Vista編)」
■更新履歴
【2013/10/11】Windows 7以降のWindows OSでの操作方法を追記しました。
【2002/05/25】Windows XPに関する情報などを加筆・修正しました。
【2000/01/15】初版公開(対象はWindows 2000)。
Copyright© Digital Advantage Corp. All Rights Reserved.