連載
» 2016年05月16日 05時00分 UPDATE

Tech TIPS:リソースモニターでオープン中のファイルをモニターする

ファイルがオープンされていると、そのファイルを削除したり、変更したりできなくなる。どのプロセスがファイルをオープンしているかが分かれば、そのプロセスを終了させるなどの対処ができる。リソースモニターを使えば、ファイルのオープン状態や関連するプロセスの情報などが得られる。

[打越浩幸,デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 7 / Windows 8 / Windows 8.1 / Windows 10 / Windows Server 2008 R2 / Windows Server 2012 / Windows Server 2012 R2



解説

 システムのトラブルシューティングのために、Windows OSが現在どのファイルをオープンしたり、アクセスしたりしているかを調査したいことは少なくない。誰かがファイルをオープンしていると、そのファイルは削除や移動、名前/属性変更などができなくなるからだ。オープンされているファイルが分かれば、それに関連するプロセスを終了させたり、ユーザーをログオフ/サインアウトさせて、そのファイルを操作可能にできる。また特定のファイルが頻繁にアクセス(読み書き)されていることが分かれば、ファイルの保存先を移動して、システムのチューンアップを図ることもできる。

 Windows OSで、どのファイルが現在オープンされているかを知るには幾つか方法がある。TIPS「オープンしているファイルを調査する」や「Windowsで共有ファイルを現在使用しているユーザーを特定する方法」では、openfilesコマンドやファイル共有のGUI管理ツールを使って、オープン中のファイルの一覧を取得する方法を紹介している。ただしこれらのツールでは、ファイルがオープンされていることは分かるが、どの程度読み書きが行われているかを知ることはできない。

 ファイルのオープン状態だけでなく、アクセスの状態なども調べるには、OS標準の「リソースモニター」ツールを使うとよい。本TIPSではその使い方を紹介する。

操作方法

 「リソースモニター」は、Windows Vista/Windows Server 2008 R2以降で導入された、プロセスやメモリ、ディスク、ネットワークなどの動作状態をリアルタイムで監視するためのツールである。オープンされているファイル名やそれをオープンしているプロセス、ファイルの読み書きの速度や通信量などの情報を素早く得ることができる。プロセスがオープンしているファイルの調査や、システムのボトルネックの調査などに活用できる。

 リソースモニターを起動するには、タスクマネージャーを起動して、[パフォーマンス]タブ画面にある[リソース モニター]ボタンをクリックするか、[ファイル名を指定して実行]ダイアログやコマンドプロンプト上で「resmon」か「perfmon /res」と入力して実行する。これはシステムのさまざまな状態をモニターするツール、「パフォーマンス モニター」をリソースビューモードで起動させるためのコマンドである。リソースモニターは実際には、パフォーマンスモニターによって実現されている。

タスクマネージャーからリソースモニターを起動する タスクマネージャーからリソースモニターを起動する
タスクマネージャーからリソースモニターを起動するには、[パフォーマンス]タブ画面で[リソース モニター]ボタンをクリックする。これはWindows 10のタスクマネージャーの画面例。
  (1)[パフォーマンス]タブを選択する。
  (2)これをクリックする。「resmon」か「perfmon /res」というコマンドを実行してもよい。

 上の(2)のリンクをクリックしてリソースモニターを起動すると、最初に[概要]画面が表示されるが、ファイルアクセスの詳細を知りたいなら[ディスク]タブを選択すると、より詳しく調査できる。

リソースモニターの[ディスク]タブ画面 リソースモニターの[ディスク]タブ画面
これはWindows 10のリソースモニターの[ディスク]タブ画面。オープンされているローカルファイルの一覧やそのアクセス状態、オープンしているプロセスなどが分かる。
  (1)[ディスク]タブなどを選択すると、より詳細な情報が表示される。[メモリ]タブについてはTIPS「リソースモニターでメモリの利用状況をモニターする」を参照。
  (2)ここにはファイルをオープンしているプロセスと、そのプロセスごとの読み書きのデータ量などが表示される。プロセス名の前にあるチェックボックスをオンにすると、そのプロセスに関するデータだけが表示される。プロセス名を右クリックすると、そのプロセスを強制終了したり、一時停止/再開できる。
  (3)プロセスごとのアクセス状況。プロセス名を右クリックして、強制終了や一時停止させることも可能。
  (4)ボリュームサイズと空き領域サイズ。
  (5)ディスクへの読み書き量とディスクキューの長さの情報(ディスクに対するコマンドが幾つキューイングされているかの情報。値が大きいほど、読み書き要求が多いディスクであることが分かる)。

 一覧表示の上にあるフィールド名をクリックすると、その値ごとにソートして表示できる。どのファイルがよくアクセスされているかを見るなら、「合計(バイト/秒)」のフィールドでソートすると分かりやすいだろう。

●「ディスク活動」ペインの表示内容

 上の画面の(3)の「ディスク活動」ペインにはオープンされているファイルに関する情報が表示されている。各フィールドの意味は次の通りである。

フィールド名 意味
イメージ ファイルをオープンしている元のプロセス名。サービスの場合はSystemやsvchost.exeと表示されていることが多い
PID プロセスのID
ファイル オープンされているファイルのフルパス名。一般のファイルではなく、ボリュームの管理領域などをアクセスしている場合は、「C:\$LogFile」や「D:\Mft」「\\Device\Harddisk\VolumeShadowCopy1」のように、特別なパス名が表示される
読み取り(バイト/秒) 1秒当たりの読み出しバイト数(過去1分間の平均)
書き込み(バイト/秒) 1秒当たりの書き込みバイト数(過去1分間の平均)
合計(バイト/秒) 読み取りと書き込みの両方を合計した値。この値が大きいほどディスクへの負荷が高いと判断できる
I/O優先度 読み書きの優先度。「高」「標準」「低」「バックグラウンド」がある。優先度の低いタスクは、優先度の高いアクセスが完了するまで待たされる
応答時間(ミリ秒) 読み書きアクセスのコマンドを受け取ってから完了するまでの時間。定常的に数百ミリ秒もかかっているようなら、ディスク読み書き(特に書き込み)がボトルネックになっている可能性がある(優先度が低いタスクはこの限りではない)。ディスクを高速なものに変えたり、メモリを増設してディスクキャッシュを増やすなどの対策が必要かもしれない
ディスク活動表示の意味

●「記憶域」ペインの表示内容

 「記憶域」ペイン(上の画面の(4))には、ボリュームごとの情報が表示されている。各フィールドの意味は次の通りである。

フィールド名 意味
論理ディスク ディスクに含まれる論理ドライブ名。複数ドライブ列挙されることもある
物理ディスク ディスクの物理的な番号
アクティブな時間(%) ディスクへのアクセスを処理している時間(コマンドの発行からその完了までの時間)と、何もしていない時間(アイドル時間)の割合。100%なら、ずっとディスクへアクセスしっぱなしで、アイドル時間がない、という意味。この値がずっと100%(もしくはそれに近い値)になっていると、ディスクがボトルネックになっている可能性がある。その場合はディスクを高速なものに変えたり、メモリを増設してディスクキャッシュを増やす、ディスクを増設してアクセスを分散するなどの対策が必要かもしれない
利用可能な領域(MB) 空き領域サイズ
全領域(MB) 全ディスクサイズ
ディスクキューの長さ ディスクのコマンドキューの長さの平均値。ディスクに対するコマンドが幾つキューイングされているかを表す(ディスクが処理待ちの場合は、後から送ったコマンドが待ち行列キューに入る)。値が大きいほど、読み書き要求が多いディスクであることが分かる
記憶域表示の意味

■更新履歴

【2016/05/16】Windows 10などに対応して加筆修正しました。

【2009/03/06】初版公開。


「Tech TIPS」のインデックス

Tech TIPS

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。