DBCC MEMORYSTATUS (Parte II)
Continuando o artigo sobre o DBCC MEMORYSTATUS, comentaremos sobre o trecho que fala sobre os contadores globais de memória da máquina e do processo do SQL Server.
Process/System Counts:
Process/System Counts Value ---------------------------------------- -------------------- Available Physical Memory 3808894976 Available Virtual Memory 8726174752768 Available Paging File 72376823808 Working Set 569122816 Percent of Committed Memory in WS 100 Page Faults 2837379 System physical memory high 1 System physical memory low 0 Process physical memory low 0 Process virtual memory low 0
Identificamos a quantidade de memória disponível através dos contadores “AVAILABLE …”:
- Available Physical Memory – Quantidade de memória RAM livre na máquina. Esse contador é extremamente importante e deve se manter constante.
- Available Virtual Memory – Memória que pode ser reservada dentro do processo do SQL Server. Na plataforma 32-bits, a reserva de memória virtual era limitada a 2GB ou 3GB. Na plataforma 64-bits, esse valor sobe para 7 ou 8TB. Usualmente encontram-se valores entre 100-300kb nas máquinas 32-bits, e ignora-se esse valor nas máquinas 64-bits.
- Available Paging File – Espaço disponível para alocação de “Committed Memory”, que inclui o arquivo de Page file disponível somada a memória RAM. Normalmente esse valor não é uma limitação para o SQL Server, mas pode impactar os processos do Sistema Operacional. Esse valor jamais deve chegar em zero, caso contrário, qualquer componente do Windows (inclusive o Cluster e a Kernel) pode falhar por falta de memória.
Um fator muito importante para se avaliar é a quantidade de memória alocada x memória RAM, que devem ser valores muito próximos. Esse fator está indicado por “Percent of Committed Memory in Working Set (WS)” e sempre que possível deve ser 100%. Se forem encontrados valores em torno de 50, isso indica que 50% da memória alocada para o SQL Server está em RAM e o demais em Page File, que é uma situação ruim.
SQL Server monitora continuamente o ambiente interno e externo através dos “sinais” chamados:
- System physical memory high – Sistema Operacional apresenta muita memória disponível que pode ser utilizada pelo SQL Server
- System physical memory low – Sistema necessita memória RAM e solicita que o SQL Server diminua o consumo do recurso
- Process physical memory low – Os componentes internos do SQL Server necessitam rebalanceamento de memória
- Process virtual memory low – O processo do SQL Server apresenta pouca memória virtual e futuras reservas podem falhar
A partir do SQL Server 2008, essas informações estão disponíveis em DMV.
[Nov/9] Agradeço aos comentários do Rodrigo por corrigir um erro do artigo: resultado de “Available Paging File” corresponde ao Committed Memory, e não exatamente ao arquivo do Page File. O conceito de Committed memory engloba tanto a memória RAM como o Page File, sendo igual a soma de ambos.
Comments
Anonymous
November 08, 2010
Fabrício, Parabens pela postagem, este é um assunto muito importante e você simplificou muito bem. Ao olhar meu ambiente (32-bits) fiquei com duas dúvidas: Usando a DMV sys.dm_os_process_memory: A memória virtual disponível está em apenas 264180KB é normal? Usando a DMV dm_os_sys_memory: O resultado me mostra um total para o Page File de 6064088KB e disponível de 3203044KB, ao olhar o tamanho do arquivo de paginação no C: está com 2095104KB, queria entender a relação entre este arquivo e os valores da DMV e também o valor apresentado no perfmon para o contador %usage do Paging File que está em 6,076. Abraços, Rodrigo FigueiredoAnonymous
September 15, 2013
The comment has been removedAnonymous
September 20, 2013
The comment has been removedAnonymous
November 04, 2013
Muito bom exemplo