Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

カーネル・モードとユーザー・モードの負荷状況を簡単に見分ける方法



デジタルアドバンテージ
2000/01/15
2002/09/04更新
 
対象OS
Windows 2000 Professional
Windows XP Professional
Windows XP Home Edition
Windows 2000 Server
Windows 2000 Advanced Server
Windowsを使っていると、原因も分からず、システムが急に重くなったりすることがある。
このような場合には、タスク・マネージャの[パフォーマンス]タブで、カーネル・モードとユーザー・モードの負荷状況を確認すれば、原因を特定しやすくなる。


解説

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

 システムの負荷状況を確認するには、タスク・マネージャの[パフォーマンス]タブを利用する(タスク・マネージャは、タクス・バーの空き領域をマウスで右クリックして表示されるポップアップ・メニューの[タスク マネージャ]から起動できる)。このタブでは、CPU使用率(CPUに対する負荷の大きさ)やメモリ使用量などをモニタすることが可能だ。

Windowsタスク・マネージャの[パフォーマンス]タブ
タスク・マネージャの[パフォーマンス]タブでは、CPUの使用率やメモリ使用量など、現在のシステムの負荷状況をモニタすることができる。
  CPU使用率の履歴を、時間を横軸としてグラフ化したもの。このグラフの縦軸はCPU使用率で、上側ほどCPU使用率が大きいことを表す。この画面では、何カ所かでCPUの使用率が振り切っている(100%になっている)ことが分かる。

 この画面の[CPU使用率の履歴]に注目すると、右半分でCPUの負荷が急激に増加しており、何カ所かでCPU使用率が100%に達していることが分かる。

 タスク・マネージャは、デフォルトでは、CPUにかかった全体の負荷をこのようにグラフ表示するようになっている。ここで詳細は述べないが、Windows 2000/XPは、OSのシステム・コードやデバイス・ドライバなどのコードと、ワードプロセッサなどのユーザー・アプリケーションのコードを完全に分離し、まったく異なるシステム・モードでそれぞれを実行している。具体的には、前者はカーネル・モード、後者はユーザー・モードで実行されるようになっている。この際ユーザー・モードで実行されるアプリケーションは、カーネル・モードが管理するメモリ資源などには直接にはアクセスできない。このような制限を加えることで、万一ユーザー・モードで実行中のアプリケーションが暴走したとしても、システムには影響が及ばないようにしているわけだ。

 ここで必要なら、デフォルトのグラフに加えて、カーネル・モード・プロセスによるCPU使用率のグラフを追加表示させることができる。これには、タスク・マネージャの[表示]−[カーネル時間を表示する]メニューを実行する。

タスク・マネージャの[表示]−[カーネル時間を表示する]を実行する
CPU使用率のグラフにカーネル・モード・プロセスによる使用率グラフを追加表示させたければ、このメニュー項目を選択する。
  カーネル・モード・プロセスによるCPU使用率のグラフを追加表示するには、これを選択する。→

 すると次のように、カーネル・モード・プロセスによるCPU使用率が、別途赤線で表示されるようになる。

カーネル時間の占有率グラフを表示させたところ
上のメニューを実行すると、このようにCPUの使用率に占めるカーネル・モード・プロセスの処理時間の割合が赤線にてグラフ表示されるようになる。
  赤色で表示されているのが、カーネル・モード・プロセスによるCPU使用率。これにより、CPUの負荷がユーザー・アプリケーションによるものか、システム・コードによるものかを判別できるようになる。

 このように、カーネル・モード・プロセスによるCPU使用率を表示させると、システムの負荷を増加させている原因が、ユーザー・アプリケーションによるものなのか(ワードプロセッサなど)、システム・コードによるものなのか(OSコードやデバイス・ドライバなど)を簡単に判別できるようになる。上に示した例では、全体的なCPU使用率が高いときでも、カーネル・モード・プロセスによる使用率はそれほど高くない。従って、ユーザー・モードで実行されているアプリケーションによる負荷が大きいことが分かる。つまり負荷を軽減させたければ、原因となっているアプリケーションを見つけ出して、それを終了させればよいはずだ。一方、カーネル・モード・プロセスによる使用率が高いとき(赤い線が、緑の線に接近しているとき)には、カーネル内部のシステム・プロセスの処理や、ネットワーク・アクセス、ディスク・アクセス、グラフィック描画、デバイス・ドライバによる処理などが負荷の原因だと予測できる。この場合には、最近行ったデバイス構成やネットワーク構成の変化などから、原因を追求したり、ハードウェアのグレード・アップを検討したりすることになるだろう。End of Article

更新履歴

【2002/09/04】Windows XPに関する情報を加筆・修正しました。

 
「Windows TIPS」


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間