CPUやメモリの使用状況、起動しているプロセス(ソフトウェア)やサービスを監視するツールとして「タスクマネージャー」を皆さんご存知かと思います。簡単にすぐさま起動でき確認できるので便利ですね。
ですが、タスクマネージャーはあくまで簡易的なもの。そこまで詳細な監視や表示はしません。
これでは物足りないという方は、タスクマネージャーとは異なるWindows標準のリソース監視機能「リソース モニター」を使ってみましょう。タスクマネージャーよりずっと高度な監視が可能です。1つのプロセスに関連付けられたハンドルやモジュールも特定できますし、メモリは予約状況も表示、ディスクへの書き込み状況もモニターしてくれます。
Windows Vista以降のOSなら標準で搭載されています。自分のパソコンが今どういった状態なのか確認するために役立つ機能です。ぜひ使いこなしてみてください。
※解説はWindows8で行います。Vistaと表示が少し異なります。
リソースモニターの起動方法
リソースモニターの起動方法にはいくつかやり方があります。
1.コントロールパネルから
「コントロールパネル」から「管理ツール」を開き「リソースモニター」で起動できます。
検索
Windows Vista & 7 ならば「スタートボタン」で「プログラムとファイルの検索」に「リソース モニター」と検索すればヒットします。リソースとモニターの間にはスペースが必要です。
Windows 8 以降では「スタート画面」にて「リソース モニター」と検索すればヒットします。因みに、実行ファイル名は「perfmon.exe」です。ただ、これで検索すると「パフォーマンス モニター」が起動するので、「perfmon.exe /res」とオプションを付けて検索してみてください。
Windows 10 ならばスタートメニューを開いてそのまま文字入力すればヒットします。
※面倒であれば「リソース」だけでもヒットします。
「ファイル名を指定して実行」から直接実行 (全 Windows 共通)
[windows] キー + [R] キーの同時押しで起動できる「ファイル名を指定して実行」で「perfmon.exe /res」を直接実行させます。「perfmon.exe /res」と入力して実行すればリソースモニターが起動します。
タスクマネージャーから実行 (全 Windows 共通)
タスクマネージャーからリソース モニターを起動できます。Windows 7とWindows 8 以降で位置は異なりますが、同じ「パフォーマンス」タブで起動できます。
概要
「CPU」「ディスク」「ネットワーク」「メモリ」の状態をモニターしています。
CPUならば「使用率」「最大周波数」「実行中のプロセス」「スレッド」など、ディスクは「ディスクI/O」「ディスクへアクセスしているプロセスと読み書きデータ量」など、ネットワークは「通信しているプロセス」と「通信先IPアドレス」「通信量」など、メモリは「プロセスが占有している容量」「ハードフォールト」などがリアルタイムで確認できます。
右には各デバイスの推移がモニターされています。ひと目でぱっと概要を確認するところです。
また、CPUの部分では各プロセスにチェックを入れることができるようになっています。チェックを付けるとそのプロセスに関する「ディスク」「ネットワーク」「メモリ」状況をピンポイントで確認できます。
プロセスを右クリックすると「プロセスの終了」なども可能になっています。
因みに、下の赤い枠内で右クリックして「列の選択」を選択するとモニターする項目列を表示・非表示できます。
さらに詳細を表示したい場合は設定してみてください。
CPU
CPUに関する情報をモニターします。
「起動中のプロセス」や「サービス」の状況をリアルタイムで確認できます。
各プロセスとサービスのCPU使用率やPID(プロセスID)、スレッド、実行中か否かの状態を確認できます。右のモニターでは論理コアごとにCPUの使用率の推移が表示されます。プロセスにはチェックもすることができ、チェックしたプロセスに関連するサービス、ハンドル、モジュールを表示してくれます。
プロセスに関連して一緒に起動している他のプログラムを特定するときに役立ちます。
実行中のプロセスに割り当てられる一意の識別子です。OSが実行中のプロセスを認識するためにあります。同じプロセスが同時起動した場合は、区別するためそれぞれに別のPIDが割り振られます。また、1つのプログラムが複数のプロセスを実行している場合も、それぞれのプロセスに別のPIDが割り当てられます。
使用率が高いとパフォーマンス低下
プロセスやサービスが過剰にCPUを使用している場合、CPUの処理が最大限になり全体のパフォーマンスが下がっている可能性があります。何か心当たりがある場合はそのプロセスを停止させるなどで対応出来ますが、何も心当たりがないのにCPU使用率が高いままの場合は、何がCPUを使用しているか確認してみるとよいでしょう。
プロセスがバグ等で暴走していたり、マルウェアなどの活動でリソースを消費していることがあります。
メモリ
メモリに関する情報をモニターします。
起動中のプロセスに対して「ハード フォールト」「コミット」「ワーキング セット」などが確認できます。
下のバーは物理メモリがどのように使われているのか表示されています。これらは各項目の意味がわからないと使えないと思いますので簡単に解説してみます。
ハードウェア予約済み |
基本的に物理メモリ(アドレス空間)の先頭に予約されている領域です。BIOSやグラフィックス、特殊なドライバなどパソコンを起動させるために必要なプログラムが使うメモリ空間です。 |
使用中 |
現在使用中のメモリ総容量です。OSや各アプリケーション、通常のドライバなどが使用してます。起動しているアプリケーションが多くなったり、そもそも占有量の多いアプリケーションを起動するとこの使用中のメモリ容量が増えていきます。最終的に物理メモリ以上のメモリ空間が「使用中」として必要になった場合は仮想メモリへスワップ(ハード フォールト)されます。 |
変更済み |
プログラム等がディスク(HDDなど)へデータを書き出す前に一度記録される領域です。メモリの読み書き速度はHDDなどの主記憶装置と比べ格段に早いものになっています。「メモリの読み込み速度 > HDDへの書き込み速度」なのでこのままでは書き込み予定のデータが混雑状態になってしまい、プログラムは次の処理へ移行できなくなります。そこで、一度この「変更済み」の領域へ書き込み予定のデータを入れ、その後に時間をかけてゆっくりディスクへ書き込んでいきます。 メモリ不足になると、変更済みの領域に保存されている書き込み予定のデータを強制的に書き込ませて容量を確保しようとします。 |
スタンバイ |
プログラムのキャッシュやデータの読み込みキャッシュなどがここに記録されます。ただし、この領域は特に要求がない場合は破棄される領域です。流れとして、プログラムがデータを読み出しキャッシュ(スタンバイ状態)、処理を実行した後何かデータをディスクに書き込もうとすると「変更済み」領域になってディスクへ書き込みます(フラッシュ)。書き出し終わった後はまたスタンバイ領域になります。 因みに、タスクマネージャーで確認できる「キャッシュ済み」の容量とは、この「スタンバイ領域」と「変更済み領域」の合計です。 |
空き |
何も使われてないメモリ領域です。メモリ要求があればまずこの領域が使われます。この空き領域がある限り、「スタンバイ領域」が破棄されたり「変更済み領域」が強制的にフラッシュされたりはされません。空き領域もなく、スタンバイ領域からも確保、変更済み領域のデータもフラッシュさせているにも関わらずメモリ不足が起こった場合は「使用済み領域」のデータが仮想メモリへスワップされます。 |
以下の項目は右に表示されているグラフの解説です。
使用物理メモリ |
RAM チップやモジュールの総容量の内、「ハードウェア予約済み」「使用中」「変更済み」領域の合計が使用済みとしてパーセント表示されます。100%となると空き容量が無いと見なされます。 |
コミット チャージ |
OSやプロセス、デバイスやアプリケーションなどのプログラムが使用しているアドレス空間の合計です。何に対する割合かというと、「物理メモリ(物理 RAM)」と「使用可能なページ ファイル(仮想メモリ)」の合計に対する割合です。これがコミット チャージの上限になります。 初期設定では、ディスク上に用意される仮想メモリは「実装されている物理メモリの容量と ” 同容量 ” のもの」が確保されます。(例:物理メモリが8GBであれば仮想メモリも8GB用意され、合計で16GBのコミットチャージとなります。) |
ハード フォールト/秒 |
これは「ページ フォールト」のことです。メモリ不足になりかけたり、あまりアクセスされないデータ(ページ)が物理メモリにあると、物理メモリ上にあるページがHDDなどのディスク上へ退避される場合があります。これをスワップ アウトといいます。CPUがこの退避されたデータに対して物理メモリにアクセスしようとすると、実際はディスク上にあるのでアクセスできない状態になります。この場合に「例外」処理が発生して、スワップ アウトされているデータを物理メモリ上にある未使用のページと入れ替える処理が発生します。これがハード フォールト(ページ フォールト)です。 この項目は、このハード フォールトが1秒間に何回発生したかを示すグラフです。1秒間に数回程度ならば問題ない状態ですが、あまりに回数が多いと仮想メモリに多く依存していることになり、深刻なメモリ不足に陥っている可能性があります。 |
メモリ不足と判断される状態とは
1つの目安として、コミット チャージが物理メモリの容量を上回っているかどうか確認してみるという方法があります。コミット チャージは「物理メモリ(物理 RAM)」と「使用可能なページ ファイル(仮想メモリ)」の合計なので、コミット済みが物理メモリより多いと物理メモリが目一杯使われているという状態でスワップが発生しやすくなっていることになります。
実際のコミット サイズと使用量はタスクマネージャーで確認できます。少しくらいならばそこまで速度低下は起きませんが、メモリに余裕がない状態でもありますので何かしら対策をしたほうがよいでしょう。
また、実際にスワップが起こっていると「ハード フォールト」の数値が高くなっていきます。これも数回程度したら問題ない範囲ですが、継続的に多く発生しているようだったらメモリ不足が濃厚です。メモリを占有しているプロセスなどを特定して停止してみたり、物理メモリを増やす(メモリ増設)などの対策をする必要があります。
ディスク
ディスクに対する情報をモニターします。
各プロセスの「読み取りデータ量」「書き込みデータ量」「ディスクの応答時間」などが確認できます。
どのプロセスがディスク(HDDなど)へ負担をかけているかが分かります。また、ディスクにアクセスした際の応答時間も表示されます。どの記憶域にアクセスしているのか分かりますので、プロセスとディスク アクセスの関連を見たい場合は重宝します。
ディスクへの処理が混み合っている場合
「ディスク キューの長さ(ディスクI/O待ちキュー長:Disk Queue Length)」が 5 辺りで継続して続いている場合は、コンピュータの I/O サブシステムで混雑が発生している可能性があります。ディスクの処理が最大限になっている状態で、現在の要求を処理できずキューが溜まっている状態です。
ディスクの処理能力以上の要求が来ているため、パフォーマンスが落ちている可能性があります。ディスク アクセスを要求しているプログラムを停止したり、ディスク自体の買い替えによる改善が必要かもしれません。
ネットワーク
ネットワークに関する情報をモニターします。
「ネットワークへ通信しているプロセス」「ネットワーク活動」「通信先のIPアドレス」などが確認できます。
通信しているプロセスや通信先、通信量がわかるので怪しい通信をしているプロセスがすぐわかります。Webブラウザやチャットソフト、システムが通信しているならば普通ですが、それ以外で身に覚えのないプロセスがあったら怪しんで監視してみるとよいでしょう。
このとき、「ローカル アドレス」ではなく「リモート アドレス」を見てください。ローカルはルーターなどと通信しているのを確認するために使います。また、「パケット損失」が多いと正しくパケットが送信できていないことを示しているので、ネットワークの状態を確認してみるとよいでしょう。
特定のプロセスの通信履歴を見たい
「ネットワーク活動中のプロセス」の項目にもチェックが付けられるようになっています。チェックを入れると、そのプロセスに絞った情報をモニターしてくれます。このとき、右のグラフにオレンジの線が加えられて、チェックしたプロセスが全体でどれだけのネットワーク リソースを使っているのか、その推移がわかるようになります。
まとめ
以上、簡単ではありますが「リソースモニター」の解説になります。
タスクマネージャーよりさらに高度な監視が可能になっています。結構いろんなことがわかるので、Windows標準ではありますがパソコンの様々な状態を確認できます。CPUの使用率が高くなっているプロセスを見つけたり、メモリ容量が足りているのかどうかを事細かく確認できるようになっています。
メンテナンスツールとしてかなり優秀ですので、ぜひ使いこなしてみてください。
コメント
コメント欄を開く