Есть ли способ найти какой-либо процесс, который периодически записывает данные на диск (согласно hdd led) на FreeBSD 10 с ZFS (возможно, перевести ZFS в режим подробного журналирования)?
lsof
и другие утилиты мгновенной агрегации статистики, похоже, не способны ничего поймать из-за короткого времени момента доступа к диску.
решение1
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
решение2
бегать:top -m io -o write -s 1
Это выведет список процессов, отсортированный по объему записи на диск, обновляемый каждую секунду.