ファイルがオープンされていると、そのファイルを削除したり、変更したりできなくなる。どのプロセスがファイルをオープンしているかが分かれば、そのプロセスを終了させるなどの対処ができる。リソースモニターを使えば、ファイルのオープン状態や関連するプロセスの情報などが得られる。
対象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」と入力して実行する。これはシステムのさまざまな状態をモニターするツール、「パフォーマンス モニター」をリソースビューモードで起動させるためのコマンドである。リソースモニターは実際には、パフォーマンスモニターによって実現されている。
上の(2)のリンクをクリックしてリソースモニターを起動すると、最初に[概要]画面が表示されるが、ファイルアクセスの詳細を知りたいなら[ディスク]タブを選択すると、より詳しく調査できる。
一覧表示の上にあるフィールド名をクリックすると、その値ごとにソートして表示できる。どのファイルがよくアクセスされているかを見るなら、「合計(バイト/秒)」のフィールドでソートすると分かりやすいだろう。
上の画面の(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】初版公開。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.