IOを最も消費しているファイルをリストするにはどうすればよいですか?


11

私のドキュメント管理ソフトウェアは多くのIOを実行しており、どのファイルが最もアクセスしているのか知りたいのですが。

iotopのように、数秒ごとにIOを消費する上位のファイルのリストを表示するLinuxツールはありますか?

次のようになります。

$ thetool
THRPUT   R/W/SWP FILE
40MB/s   write   /usr/alfresco/repo/1283421/1324928.doc
12MB/s   read    /usr/alfresco/cache/3928dh29f8if
11MB/s   read    /tmp/239398hf2f024f472.tmp

私はのmanページで見てiotoplsofstraceと彼らは、そのような機能を提供していないようです。


この情報を「strace」から取得するポストプロセッサーを作成することもできますが、私の知る限り、そのようなツールは存在しません。(このようなツールは、「mmap」を介して行われた操作を見落とすことになります。)
David Schwartz

回答:


2

「バイト数」の測定基準は間違っていると思います。2つのアクセスを考えます。1つはファイルから10MBを読み取ります。もう1つは、ファイルの512バイトごとに最初の10MBを読み取ります。「バイト数」は、2番目のアクセスと比較して、最初のアクセスの512倍になります。しかし、どちらもI / Oサブシステムにまったく同じ負荷をかけます。

「操作の数」を受け入れることができる場合は、「バイト数」とほぼ同じか悪いのであれば、実際に測定できるものがあります。inotifywatchプログラムは、これを行い、そしてそれはあなたのディストリビューションの一部の可能性がありますinotify-toolsパッケージ。

アクセスの大部分を構成するファイルがすぐにわかり、実際の問題を解決できる可能性があります。


iotopはMB / sをメトリックとして使用しますが、iotopは間違っていますか?あなたのinotifywatch提案の+ 1、manページの例は、まさに私が必要とするものであり、私が私の質問で説明したものです。どうもありがとう!
Nicolas Raoul

そうですが、「iotop」はファイルを識別できません。デバイスをブロックするだけです。したがって、問題のあるプロセスやファイルシステム/デバイスの特定に役立つ可能性がありますが、アクセスしているファイルは特定できません。さまざまなツールから部品を組み合わせる必要がある場合があります。
David Schwartz

ハム、面白い、ありがとう!私は今inotifywatchで遊んでいます、そして私が何ができるかチェックします。
Nicolas Raoul

0

まず、明確にするために:「IO消費ファイル」などはありません。ファイルはパッシブオブジェクトです。これはIOをトリガーするプログラムであり(通常はファイルの読み取り/書き込みによって)、ファイルにアクセスする頻度を増減できます。したがって、ファイルに関して言及するスループットは、実際にはあまり意味がありません。ファイルに関する有用な情報は、ファイルへのアクセスと変更の頻度です。これは、notifywait -m /some/file/or/directoryinotifyツールから)またはFAMGaminなどのより複雑なシステムを使用して監視できます。


この "スループット"(他の単語の方が適切かもしれませんが、私の英語では申し訳ありません)は、1秒間に特定のファイルに対して読み書きされるバイト数(その間にファイルにアクセスした各プロセスの合計)として説明します第二)。もっと理にかなっているといいのですが。inotifywait、fam、gaminは、残念ながら「ファイルXが変更/読み取られました」とだけ言ってくれます。
Nicolas Raoul
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.