A memória (páginas físicas e virtuais) se esgota por motivo desconhecido

1

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?

    
por Hoàng Long 01.09.2016 / 04:33

1 resposta

1

Você pode verificar vazamentos de memória usando o Poolmon ...

Faz parte do Windows Driver Kit (WDK).

Alguns links úteis da Microsoft:

link

link

link

    
por 06.09.2016 / 12:25