iotop ですが、特定のディスク用ですか?

iotop ですが、特定のディスク用ですか?

特定のボリュームの IO を監視するための のようなツールはありますかiotop? (または、フィルタリングする方法を見逃したのでしょうかiotop?) そうでない場合、(たとえば) を介してこの情報を取得する方法はありますか/proc? (dstatなどでは、ボリュームごとにすべてのプロセスの集計アクティビティのみが表示されますが、各プロセスがどの程度貢献しているかを確認したいのです。)

答え1

/dev/sdaこれは理想的な答えではありませんが、特定のディスク (この場合は)にどのプロセスが最も多く書き込み、どれだけ書き込んだかを毎秒教えてくれます。

dstat -tdD /dev/sda --top-io

次のような画面が表示されます:

dstat出力

答え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

関連情報