Actividad de disco de seguimiento de FreeBSD 10

9

¿Hay alguna forma de encontrar algún proceso que esté escribiendo periódicamente en el disco (de acuerdo con el disco duro del disco duro) en FreeBSD 10 con ZFS (tal vez convertir ZFS en modo de registro detallado)?

lsof y otras utilidades de estadísticas que se agregan instantáneamente parecen no ser capaces de detectar nada debido al corto tiempo de un momento de acceso al disco.

o_0
fuente
¿Qué pasa con el uso de la pantalla io toppara buscar el proceso que está consumiendo su disco de E / S? : top -m io -o total : Freebsd.org/cgi/...
probablemente sea útil para procesos de carga pesada que se encuentran principalmente en la parte superior, pero no para aquellos cuya actividad no coincide con la programación superior. por ejemplo, si HDD LED está constantemente parpadeando una vez en un par de segundos no hay casi ninguna posibilidad de ver algo bajo en la parte superior por lo que he intentado
o_0

Respuestas:

9

DTrace puede informar sobre información vfs en FreeBSD (así como una serie de otras sondas). DTrace está habilitado de manera predeterminada en el kernel 10, por lo que todo lo que necesita hacer es cargar el módulo y luego ejecutar el script dtrace.

Cargue el módulo DTrace

kldload dtraceall

Obtenga el script vfssnoop.d de los foros de FreeBSD. El conjunto de hilo es un tesoro para controlar los discos.

Ejecutarlo:

./vfssnoop.d

Mire la salida de lo que se accede:

# ./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
Mate
fuente
Santo macarrones! Muchas gracias, mi búsqueda en Google finalmente ha terminado)
o_0
5

correr: top -m io -o write -s 1

Esto imprimirá la lista de procesos, ordenados por cuánto están escribiendo en el disco, actualizados cada 1 segundo

Allan Jude
fuente