有没有办法找到使用 ZFS 在 FreeBSD 10 上定期写入磁盘(根据 hdd led)的进程(也许将 ZFS 转换为详细日志记录模式)?
lsof
由于磁盘访问的时间很短,其他即时聚合统计实用程序似乎无法捕获任何内容。
答案1
DTrace能够报告 FreeBSD 中的 vfs 信息(以及大量其他探测器)。 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
这将打印出进程列表,按写入磁盘的量排序,每 1 秒更新一次