
特定のボリュームの IO を監視するための のようなツールはありますかiotop
? (または、フィルタリングする方法を見逃したのでしょうかiotop
?) そうでない場合、(たとえば) を介してこの情報を取得する方法はありますか/proc
? (dstat
などでは、ボリュームごとにすべてのプロセスの集計アクティビティのみが表示されますが、各プロセスがどの程度貢献しているかを確認したいのです。)
答え1
答え2
チェックアウトfatrace
:
たとえば、/hdd
監視したいパーティション(私の場合はマウントポイント)にcdして実行します。
sudo fatrace -c -t
すると、例えば次のようにtouch /hdd/x
表示されます。
16:11:05.278541 touch(179482): + /hdd
16:11:05.278541 touch(179482): CWO /hdd/x
詳細:
Usage: fatrace [options...]
Options:
-c, --current-mount Only record events on partition/mount of current directory.
-o FILE, --output=FILE Write events to a file instead of standard output.
-s SECONDS, --seconds=SECONDS Stop after the given number of seconds.
-t, --timestamp Add timestamp to events. Give twice for seconds since the epoch.
-p PID, --ignore-pid PID Ignore events for this process ID. Can be specified multiple times.
-f TYPES, --filter=TYPES Show only the given event types; choose from C, R, O, or W, e. g. --filter=OC.
-C COMM, --command=COMM Show only events for this command.
-h, --help Show help.
答え3
まだ答えが出ていないので…
簡単な提案 (iotop スイッチなど) はありませんが、これが重要な場合は、ファイル システムを別の場所に再マウントし (検査するプロセスに対して chroot)、読み取り/書き込みされたデータの量をカウントする FUSE モジュールを作成できます。これは、既存のモジュールを簡単に適応できるはずです。FUSE コミュニティに、どの既存のソリューションから始めるのが最適か尋ねることができます。おそらく、デモ モジュールでも十分でしょう。
答え4
iostat を使用してディスク I/O のパフォーマンスの問題を監視できます。
$ iostat -xd /proc