Determinando como toda a memória é usada no Windows Server 2008

3

Eu tenho um sistema Windows Server 2008, que tem 12 GB de RAM.

Se eu listar todos os processos no Gerenciador de Tarefas e SUM () a memória de cada processo (Conjunto de Trabalho, Memória (Conjunto de Trabalho Particular), Tamanho de Confirmação, ...), nunca alcanço mais do que 4 -5GB que deve estar "em uso". No entanto, o gerenciador de tarefas relata que esse servidor tem 11 GB em uso na guia "Desempenho".

Não estou conseguindo determinar para onde toda essa RAM usada está indo. Não parece ser cache do sistema, mas não posso ter certeza.

Pode ser um vazamento de memória em um dos appliances, mas estou com dificuldades para descobrir qual deles. A memória do servidor continua a ser arquivada e, eventualmente, nos obriga a reiniciar o dispositivo para apagá-lo.

Eu tenho lido sobre como as atribuições de RAM funcionam no Windows Server:

  • RAM, memória virtual, arquivo de paginação e tudo o mais: link
  • Qual é a melhor maneira de medir? link
  • Configure o cache do sistema de arquivos no Windows: link

Mas temo que estou sem ideias no momento.

    
por Mojah 27.08.2010 / 13:35

2 respostas

3

O gerenciamento de memória do Windows é um tópico gigantesco. Livros inteiros podem e foram escritos exatamente neste tópico. A primeira coisa que gostaria de fazer é assistir a série de vídeos, "Mysteries of Windows Memory Management Revealed", partes 1 e 2, no MSDN Channel 9:

link

link

(Há versões norte-americanas e européias desta sessão, quando ele deu essas palestras na TechEd na América e novamente na TechEd Europe.)

O Gerenciador de Tarefas e o Monitor de Recursos são OK e são suficientes para 99% dos usuários do Windows, mas as ferramentas da Sysinternals são realmente estelares quando se trata de quem está nos últimos 1% e deseja ver o máximo de detalhes possível .

Comece com o RAMMap. Você pode obtê-lo em \\ live.sysinternals.com \ Tools \. Então, para obter uma visão melhor de como um processo específico está usando a memória, use o VMMap.

Não vamos tentar definir o que todos esses diferentes tipos de memória significam agora. Seu problema é que você tem medo de um vazamento de memória. Seu sintoma é que seu servidor se torna inutilizável por falta de memória e você é forçado a reinicializá-lo.

Você nunca deve precisar reinicializar um servidor regularmente apenas a partir da operação normal. Idealmente, deve ser um sistema de auto-manutenção que só precisa ser reinicializado a partir de alterações de patch e configuração. Então, sim, eu diria que você provavelmente tem um problema, supondo que você está reiniciando seu servidor por um bom motivo, tal como ele realmente se torna instável / inutilizável. Não apenas porque o Gerenciador de Tarefas está dizendo que quase toda a sua RAM está em uso. As versões modernas do Windows armazenam, de maneira agressiva, coisas e mapeiam arquivos e dados na RAM, mesmo que você não os esteja usando naquele exato momento. Observe a diferença entre a memória "Livre" e a memória "Disponível" no Gerenciador de Tarefas.

No entanto, não tenho certeza do que você quer dizer com "Pode ser um vazamento de memória em um dos appliances." O que você quer dizer com appliance? Eu pensei que estávamos falando de um servidor Windows aqui?

Você pode ter um vazamento de memória em vários tipos diferentes de memória, como a memória privada de um processo, ou a memória compartilhada, ou talvez até a memória do pool - paginada ou não paginada. Em qualquer um desses casos, use as ferramentas que mencionei e assista a essas diferentes categorias de memória para processos que continuam aumentando o uso da memória e nunca voltam a ficar inativos. Isso seria um vazamento.

Espero que isso ajude.

    
por 22.08.2012 / 17:37
1

O Gerenciador de Tarefas por padrão nunca mostra o uso real de memória total de cada processo; mas você pode ter informações adicionais, que são muito mais precisas.

Veja aqui:

link

    
por 27.08.2010 / 13:51