FreeBSD 10 ディスクアクティビティのトレース

FreeBSD 10 ディスクアクティビティのトレース

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秒ごとに更新されて出力されます。

関連情報