Abaixo está um caso real que eu encontrei na semana passada.
O sintoma é o mesmo: vários eventos "Uma operação de E / S iniciada pelo Registro falhou irrecuperavelmente" foram registrados no evento do sistema. Além disso, um aplicativo relatou "criar falha no processo" no evento do aplicativo. Como a função CreateProcess () raramente falha, a aparência desse evento é uma boa indicação para a replicação de recursos do sistema.
Na verdade, eu encontrei um evento "Desligamento anterior foi inesperado", o que significa que o Windows falhou ao limpar o carimbo de data / hora do desligamento. ( link ) O sistema operacional nem sequer teve a chance de atualizar um valor no registro! Como isso pôde acontecer? Não é difícil adivinhar que o Windows está vazando memória não paginada ou paginável.
Então, adicionei dois contadores: Bytes de pool não paginado e bytes do pool paginado, bem como o contador de objetos do kernel em caso de vazamento de identificador. Não surpreendentemente, o sistema caiu 2 dias depois, como mostra a figura a seguir, o tamanho do pool paginável continua aumentando de 2009-10-24 09:28 até 2009-10-26 23:26 quando o sistema falha com um tamanho de pool paginado de quase 360 MB . Eu uso Procexp para obter o limite de pool paginado que é de fato 360MB .
O último passo é descobrir qual driver está vazando, Poolmon ( link ) pode ser usado para monitorar informações detalhadas de Pool Paginado e Não-paginável.