Mi software de gestión de documentos está haciendo mucho IO y me gustaría saber a qué archivos está accediendo más.
¿Existe una herramienta de Linux que me dé la lista de los principales archivos que consumen IO, como iotop pero para archivos, cada pocos segundos?
Eso podría verse así:
$ thetool
THRPUT R/W/SWP FILE
40MB/s write /usr/alfresco/repo/1283421/1324928.doc
12MB/s read /usr/alfresco/cache/3928dh29f8if
11MB/s read /tmp/239398hf2f024f472.tmp
Busqué en las páginas del manual de iotop
, lsof
, strace
y que no parecen ofrecer esta característica.
monitoring
disk-usage
Nicolas Raoul
fuente
fuente
Respuestas:
Creo que su métrica "número de bytes" es la incorrecta. Considere dos accesos. Uno lee 10 MB de un archivo. El otro lee cada 512 bytes del archivo durante los primeros 10 MB. El "número de bytes" será 512 veces mayor para el primer acceso en comparación con el segundo. Sin embargo, ambos pondrán exactamente la misma carga en el subsistema de E / S.
Si puede aceptar "número de operaciones", que es casi tan bueno o tan malo como "número de bytes", entonces tiene algo que realmente puede medir. El
inotifywatch
programa hace esto, y es probable que sea parte delinotify-tools
paquete de su distribución .Le informará de inmediato qué archivos comprenden la mayor parte de los accesos, y probablemente le permitirá resolver su problema real.
fuente
En primer lugar, para aclarar: no existe tal cosa como "archivos que consumen IO" . Los archivos son objetos pasivos. Son programas que activan IO (generalmente leyendo / escribiendo archivos) y pueden acceder a los archivos con mayor o menor frecuencia. Por lo tanto, el rendimiento que menciona con respecto a los archivos en realidad no tendría mucho sentido. Una información útil sobre los archivos podría ser la frecuencia con la que se accede y se modifica. Esto se puede monitorear usando
notifywait -m /some/file/or/directory
(desde las herramientas de inotify ) o algún sistema más complejo como FAM o Gamin .fuente