web-dev-qa-db-ja.com

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

FreeBSD 10でZFSを使用して(hdd ledに従って)ディスクに定期的に書き込みを行っているプロセスを見つける方法はありますか(ZFSを詳細ログモードに変更する場合があります)?

lsofおよびその他の即座に集計する統計ユーティリティは、ディスクアクセスの瞬間が短いため、何もキャッチできないようです。

9
o_0

DTrace は、FreeBSDのvfs情報(および他の多くのプローブ)を報告できます。 DTraceは10カーネルでデフォルトで有効になっているため、モジュールをロードしてからdtraceスクリプトを実行するだけです。

DTraceモジュールをロードする

kldload dtraceall

FreeBSDフォーラムから vfssnoop.d スクリプトを入手してください。 全スレッド は、ディスク監視の宝庫です。

それを実行します:

./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
9
Matt

実行:top -m io -o write -s 1

これは、プロセスがディスクに書き込んでいる順にソートされ、1秒ごとに更新されるプロセスのリストを出力します。

5
Allan Jude