FreeBSD 10 추적 디스크 활동 디스크에 기록하는

ZFS를 사용하여 FreeBSD 10에서 디스크에 주기적으로 디스크에 기록하는 (hdd led에 따라) 일부 프로세스를 찾을 수있는 방법이 있습니까 (ZFS를 자세한 로깅 모드로 전환 할 수 있음)?

lsof 다른 통계 집계 유틸리티는 디스크 액세스 순간이 짧기 때문에 어떤 것도 포착 할 수없는 것 같습니다.



답변

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

답변

운영: top -m io -o write -s 1

그러면 프로세스 목록이 인쇄되며 디스크에 쓰는 양에 따라 정렬되어 1 초마다 업데이트됩니다.