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