iotop но для конкретного диска?

iotop но для конкретного диска?

Есть ли инструмент, подобный iotop, но для мониторинга ввода-вывода на определенных томах? (Или, возможно, я упустил способ фильтрации iotop?) Если нет, есть ли способ получить эту информацию через (например) /proc? ( dstatи т. д. показывают только совокупную активность по всем процессам на том, тогда как мне интересно увидеть, какой вклад вносит каждый процесс.)

решение1

Это не идеальный ответ, но он каждую секунду сообщит вам, какой процесс записал больше всего данных и сколько именно он записал на заданный диск (в данном случае /dev/sda):

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

Вы увидите что-то вроде:

вывод dstat

решение2

Проверитьfatrace:

Например, перейдите в раздел, который вы хотите отслеживать (в моем случае это точка монтирования /hdd), и запустите

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), но если это важно для вас, то вы можете написать модуль FUSE, который просто перемонтирует файловые системы в другом месте (chroot для процесса, который нужно исследовать) и подсчитывает объем прочитанных/записанных данных. Это должно быть довольно простой адаптацией существующих модулей. Вы можете спросить сообщество FUSE, какое из существующих решений может быть лучшим для начала. Возможно, даже их демонстрационный модуль подойдет.

решение4

Вы можете использовать iostat для мониторинга дискового ввода-вывода на предмет проблем с производительностью.

$ iostat -xd /proc

Связанный контент