Você pode verificar vazamentos de memória usando o Poolmon ...
Faz parte do Windows Driver Kit (WDK).
Alguns links úteis da Microsoft:
Recentemente, nosso servidor fica suspenso com bastante frequência. Eu suspeito de um vazamento de memória, mas ainda não consigo encontrar nenhum suspeito. O log de eventos registra a situação assim:
- <SystemInfo>
<SystemCommitLimit>49195651072</SystemCommitLimit>
<SystemCommitCharge>49195651072</SystemCommitCharge>
<ProcessCommitCharge>3172712448</ProcessCommitCharge>
<PagedPoolUsage>432541696</PagedPoolUsage>
<PhysicalMemorySize>16983396352</PhysicalMemorySize>
<PhysicalMemoryUsage>16197967872</PhysicalMemoryUsage>
<NonPagedPoolUsage>183476224</NonPagedPoolUsage>
<Processes>139</Processes>
</SystemInfo>
- <ProcessInfo>
Como você pode ver, o SystemCommitCharge alcança o SystemCommitLimit (~ 45GB), mas o ProcessCommitCharge é de apenas 3GB.
Eu até mesmo confiro os 3 processos que usam mais memória naquele momento, mas juntos eles usam apenas cerca de 1GB. Existem cerca de 100 processos a mais, mas cada um deles usa 50 MB no máximo.
Windows successfully diagnosed a low virtual memory condition. The following programs consumed the most virtual memory: sqlservr.exe (4480) consumed 565637120 bytes, mysqld.exe (4500) consumed 362201088 bytes, and java.exe (1628) consumed 314191872 bytes.
Tudo parece indicar que há algo diferente de meus processos que captam o recurso.
Só mais uma coisa que noto é que atualmente (após a reinicialização do sistema) nossa memória e Cache comprometidos aumentam muito em comparação com o uso normal da memória. No entanto, ao verificar novamente com o Rammap, vejo que a maior parte da memória é Stand By, o que significa que não deve afetar o desempenho do sistema. Além disso, a memória não paginada é de apenas 133 MB agora, portanto, a falha dos drivers não deve ser o problema. Eu sou sem noção.
Verificando nosso servidor atentamente por 3 dias, eu posso ver que a memória usada aumenta pouco a pouco, a partir de:
(30/08)
In Use = 3.4 GB Committed = 5.3 GB Cached = 2.2 GB Paged Pool = 225 MB Non-paged Pool = 76.2 MB to
(01/09)
In Use = 3.9 GB Committed = 23.9 GB Cached = 11.9 GB Paged Pool = 335 MB Non-paged Pool = 133 MB
Existe uma maneira de detectar esse "fator misterioso" em ação?