FreeBSD 10 отслеживает активность диска

9

Есть ли способ найти какой-нибудь процесс, который периодически записывает на диск (в соответствии со светодиодом hdd) на FreeBSD 10 с ZFS (возможно, перевести ZFS в режим подробного ведения журнала)?

lsof и другие мгновенно агрегирующие статистические утилиты, похоже, не способны ничего отловить из-за короткого времени доступа к диску.

o_0
источник
Как насчет использования дисплея io topдля поиска процесса, который потребляет ваш дисковый ввод-вывод ? : top -m io -o total : Freebsd.org/cgi/...
Это, вероятно, полезно для процессов с большой нагрузкой, которые в основном находятся на вершине, но не для тех, чья активность не совпадает с топ-расписанием например, если светодиод hdd постоянно мигает один раз в пару секунд, почти нет шансов увидеть что-то сверху, насколько я пытался
o_0

Ответы:

9

DTrace может сообщать информацию о vfs во FreeBSD (а также множество других зондов). DTrace по умолчанию включен в ядре 10, поэтому все, что вам нужно сделать, это загрузить модуль и запустить скрипт dtrace.

Загрузите модуль DTrace

kldload dtraceall

Загрузите скрипт vfssnoop.d с форумов FreeBSD. Весь поток является сокровищницей для мониторинга диска.

Запустить его:

./vfssnoop.d

Следите за выводом того, что доступно:

# ./vfssnoop.d 
cc1: warning:  is shorter than expected
TIMESTAMP           UID    PID PROCESS          CALL             SIZE PATH/FILE
1555479476691083      0   1225 nfsd             vop_getattr         - /share/netboot
1555479478601010      0   1225 nfsd             vop_inactive        - /share/netboot
1555479482457241      0   1225 nfsd             vop_getattr         - /share/wpad.dat
1555480557262388      0   1432 cron             vop_getattr         - /var/cron/tabs
1555480557302178      0   1432 cron             vop_inactive        - /var/cron/tabs
1555480557336414      0   1432 cron             vop_inactive        - /etc
1555480557346224      0   1432 cron             vop_getattr         - /etc/crontab
Matt
источник
Святые макароны! Большое спасибо, моя погоня за гуглом наконец закончилась)
o_0
5

запустить: top -m io -o write -s 1

Это распечатает список процессов, отсортированный по тому, сколько они пишут на диск, обновляется каждую 1 секунду

Аллан Джуд
источник