Estoy buscando la posibilidad de medir cuánto tiempo se tarda en finalizar la operación del archivo emitido para el controlador NTFS (abrir archivo cerrar archivo borrar archivo, escribir, leer, etc.) y poder iniciar sesión. No puedo cambiar la aplicación para medir el tiempo dentro de la aplicación. Me interesa cuánto tiempo transcurre entre la emisión de una llamada y el regreso a la ejecución de la aplicación.
La aplicación escribe continuamente en el volumen NTFS colocado en el almacenamiento iSCSI. También elimina rutinariamente los archivos más antiguos. Los tamaños de archivo son entre 100 y 200 MB. Siempre hay alrededor del 10% de espacio libre en el volumen. En algún momento, la aplicación no puede escribir datos a un ritmo regular, por lo que comienza a almacenar en la memoria intermedia. Entonces sucede algo y el búfer comienza a vaciarse y todo vuelve a la normalidad.
Probé las operaciones de E / S en volúmenes físicos y lógicos; no veo anomalías durante la "interrupción"
Ahora quiero saber si el problema está dentro de la aplicación o en algún lugar del sistema operativo. Por esa razón, estaba pensando que si soy capaz de registrar todos los tiempos de operaciones de archivo, podré averiguar si es el sistema el que lleva más tiempo de lo habitual o si las operaciones son rápidas y algo se bloquea dentro de la aplicación.
La plataforma es Windows Server 2008R2 de 64 bits. Intenté el monitor de proceso sysinternals pero no registra el tiempo de ejecución. El problema puede tardar algunas horas en aparecer.
¿Me puede sugerir la herramienta adecuada para este trabajo?
fuente
Respuestas:
Contrata a alguien para que escriba un controlador de filtro monolítico o mini para el sistema de archivos. Podrá interceptar todas las llamadas desde una aplicación particular de interés y rastrearlas directamente a NTFS o cualquier otro punto de entrada del controlador FS. OSR tenía algún kit de interceptación de datos (?) O lo que sea, también podría ser útil.
https://www.osr.com/dmk/
fuente