Questão A Memória do Windows 2008 R2 está sempre cheia


Temos um Windows 2008 R2 em um servidor HP com 24 GB de RAM. O único software importante instalado é o SQL Server 2008 R2 e quase nenhum recurso ou função está habilitado neste Windows.

Mas o problema é que sempre a RAM está quase cheia. Quando observamos o desempenho no Gerenciador de Tarefas ou na parte de memória do Monitor de Recursos ou programas de terceiros, vemos que cerca de 97% -99% de 24 GB de RAM estão ocupados, mas a soma da memória usada de todos os processos é inferior a 1 GB.

Se essa porcentagem de RAM for usada, por que o Windows não pode mostrar quais processos estão usando essa quantidade de memória? e se não, por que o windows diz que a RAM está cheia?


4


origem




Respostas:


O SQL Server usa toda a memória disponível. Não é um bug, é por design. É também por isso que o SQL Server deve ser instalado em máquinas dedicadas (e não junto com o IIS, por exemplo).

Quando executado por um longo período, o SQL Server armazena os dados de acordo com as consultas executadas, para que sejam mais rápidos de serem executados posteriormente. Isso significa que, quando você inicia o servidor, o uso da memória será baixo, mas aumentará com o tempo.

Você pode ajustar o limite de memória a ser usado pelo SQL Server, mas você não deve fazer isso a menos que tenha sérios motivos para isso.

Aqui está uma citação de Como ajustar o uso de memória usando opções de configuração no SQL Server no site de suporte da Microsoft:

Quando você inicia o SQL Server, o uso de memória do SQL Server pode continuar aumentando e diminuindo constantemente, mesmo quando a atividade no servidor é baixa. Além disso, o Gerenciador de tarefas e o Monitor de desempenho podem mostrar que a memória física disponível no computador está diminuindo constantemente até que a memória disponível esteja entre 4 a 10 MB.

Esse comportamento sozinho não indica um vazamento de memória. Esse comportamento é normal e é um comportamento pretendido do pool de buffer do SQL Server.


6





Você pode usar RAMMap para descobrir qual processo está usando sua memória (e como).


3





Para especificar a quantidade máxima e mínima de memória usada pelo SQL Serve:

  1. Clique com o botão direito do mouse na instância do SQL Server no Pesquisador de Objetos do SQL Server Management Studio.
  2. Selecione Propriedades
  3. Selecione os Memória aba

enter image description here

Para mais informações, consulte este artigo: Efeitos da memória mínima e máxima do servidor

Quanto à alocação de memória por processo específico, você pode começar com Monitor de Recursos do Windows


1