Eu estou procurando a possibilidade de medir quanto tempo demora para concluir a operação de arquivo emitida para o driver NTFS (abrir arquivo fechar arquivo excluir arquivo, escrever, ler etc) e ser capaz de registrá-lo. Não consigo alterar o aplicativo para medir o tempo dentro do aplicativo. Estou interessado em quanto tempo passa entre a emissão de uma chamada e o retorno à execução do aplicativo.
O aplicativo está gravando continuamente no volume NTFS colocado no armazenamento iSCSI. Também está removendo rotineiramente os arquivos mais antigos. Os tamanhos dos arquivos estão entre 100 e 200 MB. Há sempre cerca de 10% de espaço livre no volume. Em algum ponto, o aplicativo não consegue gravar dados em um ritmo regular, de modo que ele comece a armazenar em buffer na memória. Então, algo acontece e o buffer começa a esvaziar e tudo volta ao normal.
Eu testei para operações de E / S para volumes físicos e lógicos - não vejo anomalias durante a "interrupção"
Agora eu quero descobrir se o problema está dentro do aplicativo ou em algum lugar no sistema operacional. Por esse motivo eu estava pensando se eu sou capaz de registrar todas as temporizações de operações de arquivo, eu serei capaz de descobrir se é o sistema que leva mais tempo do que o habitual ou as operações são rápidas e algo bloqueia dentro do aplicativo.
A plataforma é de 64 bits do Windows Server 2008R2. Eu tentei sysinternals monitor de processo, mas não registra o tempo de execução. Pode levar algumas horas até que o problema apareça.
Você pode sugerir a ferramenta certa para esse trabalho?