システムがディスクに書き込み/読み取りを行っている場所を監視するにはどうすればよいでしょうか?

システムがディスクに書き込み/読み取りを行っている場所を監視するにはどうすればよいでしょうか?

私のシステムは Ubuntu です。ディスクの使用状況を知りたいのです。実際、ディスクが何に使用されているかではなく、どの部分が使用されているかを確認したいのです。どのファイルが書き込まれ、読み取られるかです。

ホーム サーバーを構築していますが、内部のディスクを常に回転させたくありません。残念ながら、「USB から起動」オプションがないため、システム全体を USB に移動できません。そのため、その一部を移動したいと考えています。最も頻繁に使用される部分です。/var/log は確かですが、他には何がありますか?

たとえば、過去 5 分間にディスク上のどのディレクトリ/ファイルが使用されたかを教えてくれるツールはありますか? 何がそれらを使用しているかを知ることもできれば便利です。

答え1

このコマンドは、過去 5 分間にアクセス (読み取り) されたすべてのファイルを表示します。

find / -amin -5

どのファイルが変更 (書き込み) されたかを知りたい場合は、-mminの代わりに オプションを使用します-amin

答え2

iotopディスクを使用しているプロセスを知ることができ、lsofこれらのプロセスが開いているファイルを知らせてくれます。

しかし、それはあなたが求めているものではありません。具体的にどのファイルにアクセスされたかを知るには、以下を試してください。システムタップ; 適切な設定をすれば、その通りあなたが求めていたもの。iotime.stpこの例は良い出発点になるかもしれません。

答え3

iotopディスクI/Oを引き起こしているアプリケーションがわかるので、lsofどのファイルが使用されているかを確認します。

答え4

実際には、すべての書き込みがあなたが考えるほど頻繁にディスクに送信されるわけではないことに注意してください。複数のファイル システム/カーネル バッファーが機能し、それらはすべてユーザー エクスペリエンスを最適化するのに役立つはずです。

システムの IO アクティビティは、システム上で実行されているアプリケーションに大きく依存します。実行されるアプリケーションについて、さらに情報を提供していただけますか? DB (MySQL など)、大量のログ データを生成するサーバー プロセス (Apache/httpd) はありますか?

関連情報