【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

負荷の大きいプロセスを特定する方法

解説をスキップして操作方法を読む

デジタルアドバンテージ
2000/01/15
2002/05/30更新
 
対象OS
Windows 2000 Professional
Windows XP Professional
Windows XP Home Edition
Windows 2000 Server
Windows 2000 Advanced Server
Windowsを使っていると、自分の操作とは別の理由で、システムの負荷が突然重くなったりすることがある。
最悪のケースとしては、コンピュータ・ウイルスが感染を広げたり、システムを破壊したりしている可能性もある。
タスク・マネージャを使えば、このような場合に、いったいどのプロセスがシステムの負荷を高めているかを知ることができる。
 

解説

 周知のとおり、WindowsはマルチタスクOSであり、複数のタスク(プログラム)を同時実行することが可能である(厳密には、ある瞬間に実行されているのはただ1つのタスクだが、ごく短い時間で次々と複数のタスクを切り替えているため、同時に実行されているように見える)。本サイトなども含め、インターネットからさまざまな情報を入手できるようになった現在では、Webブラウザをいくつも表示しながら、ワードプロセッサで文書を作成するなどは常識になっているだろう。

 このようにユーザーが明示的に複数のアプリケーションを実行する以外にも、Windows NT/2000/XPでは、OS自身の処理を行うために、さまざまなシステム・サービス・プロセスがバックグラウンドで実行されている。現在実行されているプロセスを確認したければ、タスク・バーの空き領域をマウスで右クリックして表示されるポップアップ メニューの[タスク マネージャ]から起動できる[Windowsタスク マネージャ]の[プロセス]タブを表示すればよい(もしくは、[Ctrl]+[Shift]+[Esc]キーから起動することも可能)。

Windowsタスク・マネージャの[プロセス]タブ
Windowsタスク・マネージャを利用すれば、現在実行されているアプリケーションを一覧表示させたり([アプリケーション]タブ)、プロセスを一覧表示させたり([プロセス]タブ)、システムの負荷状態をモニタしたり([パフォーマンス]タブ)することができる。画面はWindows 2000でのもの。Windows XPのタスク・マネージャでは、これに加えネットワークのトラフィックをモニタするための[ネットワーク]タブが追加された。
  [プロセス]タブでは、現在実行中のプロセスが一覧表示される。明示的にユーザーが起動したアプリケーションのプロセス以外にも、数多くのプロセスがバックグラウンドで実行されていることが分かる。

 Windowsを使っていると、コンピュータを何も操作していないのに、ディスクやネットワーク・アクセスが発生する場合があるが、それらはほとんどの場合、こうしたバックグラウンドで実行中のプロセスの処理に起因するものである。しかし、このような予想外のディスク/ネットワーク アクセスが必要以上に発生して、アプリケーションなど本来の処理に支障をきたすようでは困りものだ。また場合によっては、ディスクやネットワークのアクセス・ランプは点灯していないのに、システム性能が異常に低下したり、一時的にアプリケーションがロックしたような状態になったりする場合もある。最近では、コンピュータ・ウイルスの被害が急増しているが、このように突然にシステムの負荷が増加する原因の1つとして、ウイルス・プログラムがバックグラウンドで活動しているという可能性もあるから注意が必要だ。

 原因を完全に究明できるという保証はないが、前出のタスク・マネージャを使えば、どのプロセスが原因でシステムの負荷が大きくなっているかを特定することができる。


操作方法

[パフォーマンス]タブでCPU使用率の状態を確認する

 まず最初は、タスク・マネージャの[パフォーマンス]タブを表示して、CPU使用率グラフに注目する。

Windowsタスク・マネージャの[パフォーマンス]タブ
この[パフォーマンス]タブでは、CPUの使用率やメモリ使用量など、現在のシステムの負荷状況を確認できる。
  [CPU使用率]の値や[CPUの使用率の履歴]のグラフに注目し、何らかの負荷がCPUにかかっているかどうかを確認する。

 ここで、上側にある[CPU使用率]と[CPU使用率の履歴]に注目する。これらはそれぞれ、現時点でCPUにかかっている負荷を数値化したものと、その負荷状況を時間を追って記録したものである。[CPU]使用率の値が高いか、[CPU使用率の履歴]グラフで大きな負荷がかかった形跡があれば、原因はCPUに対する負荷であることが分かる。またこのときには、[表示]−[カーネル時間を表示する]メニューを選択して、カーネル時間の表示を行うようにする(詳細は別稿の「Windows TIPS:カーネル・モードとユーザー・モードの負荷状況を見分ける方法」を参照)。

[プロセス]タブで原因のプロセスを特定する

 次はタスク・マネージャの[プロセス]タブをクリックし、プロセス一覧の[CPU]や[CPU時間]の値に注目する。

Windowsタスク・マネージャの[プロセス]タブ
CPUに負荷をかけているプロセスを特定するには、ここで[CPU]と[CPU時間]項目に注目する。これらの見出し部分はボタンになっており、マウスでクリックすることで、その項目の値で一覧をソートできるようになっている。画面はWindows 2000でのもの。Windows XPでは、デフォルトでは[CPU時間]は表示されなくなった。しかし指定により、Windows 2000と同様に表示させることは可能。
  現時点でのCPU使用率。すべてのプロセスの値を加えると100(%)になる。
  プロセス開始から現在までのCPU使用時間の累積を秒単位で表した値。

 ここで[CPU]の値は、現時点でのそのプロセスのCPU使用率である。すべてのプロセスのCPU使用率の値を加えると、100(%)になる。この値が大きいほど、そのプロセスが現時点でCPUに対し大きな負荷をかけていることになる。従って、現在でも問題のプロセスがCPUに負荷をかけているなら、この値が大きなプロセスを見つけ出せばよい。

 一方の[CPU時間]の値は、そのプロセスが開始されてから、現在までに使用したCPU時間を秒単位で表したものだ。ただしWindows XPでは、デフォルトではこの[CPU時間]は表示されなくなった。Windows XPで[CPU時間]を表示するには、[表示]メニューの[列の選択]を実行し、表示されるダイアログで[CPU時間]のチェック・ボックスをオンにする。

 例えば、負荷原因を追求しようとしてタスク・マネージャを起動したが、調査を開始するうちに負荷が軽減されてしまうという場合もある。特にバックグラウンドでのサービスの処理は、必要に応じて起動・終了するので、このようなことが起こりがちだ。このような場合には、[CPU時間]の値に注目する。[CPU]の値が小さくても、この値が大きければ、そのプロセスは継続的にCPUに負荷をかけていたことになる。(ただし[CPU時間]はプロセスが開始されてから現在までに使用したCPU時間なので、この値が大きいからといって、そのプロセスが直近の負荷増の原因だとは限らない点に注意すること)。

 タスク・マネージャの[プロセス]タブの一覧の見出し部分([イメージ名]、[PID]、[CPU]など)はボタンになっており、ここをマウスでクリックすると、その項目で一覧がソートされるようになっている。そこで今回のような目的では、[CPU]や[CPU時間]の部分をクリックして、値の大きい順に一覧を並べ替えるとよい。

 画面から分かるとおり、[CPU時間]や[CPU]の値が圧倒的に多く、リストの最上位にあるプロセスは「System Idle Process」である。これは、CPUがビジーでない(空きだった)時間を表すもので、通常はこれが最上位に表示される。このプロセスは、現在の負荷とは特に関係がないので無視してよい。

 この例では、次に「explorer.exe」のプロセスがCPU時間「0:12:28」で続いている。これは、Windows環境で各種のファイル操作を行うためのエクスプローラのプロセスである。大きな負荷の原因を調査するには、一定時間タスク マネージャを表示したままにして、[CPU]や[CPU時間]の値の増加が著しいプロセスがないかどうかに注目する。そのようなプロセスが存在した場合には、それが負荷原因である可能性が高い。End of Article

関連記事(Windows Server Insider)
  Windows TIPS:カーネル・モードとユーザー・モードの負荷状況を見分ける方法
     
この記事と関連性の高い別のWindows TIPS
カーネル・モードとユーザー・モードの負荷状況を簡単に見分ける方法
プログラムの実行に使用するCPUを限定させる
アプリケーションに対応するプロセスを素早く発見する方法
タスク・マネージャのパフォーマンス・タブの見方(Windows Vista/Windows Server 2008編)
仮想マシンの実行優先度を調整する(Virtual Server 2005編)
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

更新履歴
【2002/05/30】記事の最後の部分で「『explorer.exe』はWebブラウザであるInternet Explorerのプロセス」との記述がありましたが、これは「『explorer.exe』はWindows環境で各種ファイル操作を行うためのエクスプローラのプロセス」の誤りでした。お詫びして訂正させていただきます。
【2002/05/25】Windows XPに関する情報などを加筆・修正しました。
 
「Windows TIPS」

ホワイトペーパーTechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています