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초마다 업데이트됩니다.