
ZFS を搭載した FreeBSD 10 で、定期的にディスクに書き込んでいるプロセス (HDD LED による) を見つける方法はありますか (ZFS を詳細ログ モードに切り替えるなど)?
lsof
その他の即時集計統計ユーティリティは、ディスク アクセスの瞬間的な短時間のため、何もキャッチできないようです。
答え1
DTraceFreeBSD の vfs 情報 (およびその他の多数のプローブ) をレポートできます。 DTrace は 10 カーネルでデフォルトで有効になっているため、モジュールをロードして dtrace スクリプトを実行するだけで済みます。
DTraceモジュールをロードする
kldload dtraceall
入手vfssnoop.dFreeBSDフォーラムのスクリプト。スレッド全体ディスク監視の宝庫です。
それを実行します:
./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秒ごとに更新されて出力されます。