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.