Partilhar via


Monitorar o uso da memória

Monitore uma instância do SQL Server periodicamente para confirmar que o uso de memória está dentro de intervalos normais.

Para monitorar uma condição da memória baixa, use os seguintes contadores de objetos:

  • Memória: Bytes disponíveis

  • Memória: Páginas/s

O contador Bytes disponíveis indica quantos bytes de memória estão atualmente disponíveis para uso dos processos. O contador Páginas/segundo indica o número de páginas recuperadas do disco devido a falhas graves de página ou gravadas no disco para liberar espaço no conjunto de trabalho devido a falhas de página.

Baixos valores no contador Bytes disponíveis podem indicar a existência de uma escassez global de memória no computador ou que um aplicativo não está liberando a memória. Uma taxa alta no contador Páginas/segundo pode indicar paginação excessiva. Monitorar a Memória: Falhas de página/segundo para ter certeza de que a atividade no disco não é provocada por paginação.

Uma taxa baixa de paginação (e, logo, de falhas de página) é normal, mesmo que o computador tenha muita memória disponível. O Gerenciador de Memória Virtual (VMM) do Microsoft Windows conta as páginas do SQL Server e de outros processos, organizando os tamanhos de conjunto de trabalho desses processos. Essa atividade do VMM tende a causar falhas de página. Para determinar se o SQL Server ou outro processo é a causa da paginação excessiva, monitore o contador Processo: Falhas de página/segundo da instância do processo do SQL Server.

Para obter mais informações sobre como solucionar a paginação excessiva, consulte a documentação do sistema operacional Windows.

Isolando a memória usada pelo SQL Server

Por padrão, o SQL Server altera seus requisitos de memória dinamicamente, com base nos recursos de sistema disponíveis. Se o SQL Server precisar de mais memória, ele consultará o sistema operacional para determinar se há memória física livre disponível e a usará. Se o SQL Server não precisar da memória alocada para ele atualmente, ele a liberará para o sistema operacional. Porém, é possível substituir a opção de usar a memória dinamicamente, por meio das opções de configuração de servidor min server memory e max server memory . Para obter mais informações, consulte Opções de memória do servidor.

Para monitorar a quantidade de memória utilizada pelo SQL Server, examine os seguintes contadores de desempenho:

  • Processo: Conjunto de trabalho

  • SQL Server: Gerenciador de Buffer: Taxa de Acertos do Cache do Buffer

  • SQL Server: Gerenciador de Buffer: Páginas do banco de dados

  • SQL Server: Gerenciador de Memória: Memória Total do Servidor (KB)

O contador Conjunto de Trabalho mostra a quantidade de memória utilizada por um processo. Se esse número estiver consistentemente abaixo da quantidade de memória definida pelas opções de servidor min server memory e max server memory, o SQL Server está configurado para usar memória demais.

O contador Taxa de acertos do cache do buffer é específico ao aplicativo. Porém, uma taxa de 90 por cento ou mais é desejável. Adicione memória até que o valor seja consistentemente maior que 90%. Um valor maior que 90% indica que mais de 90% de todas as solicitações de dados foram satisfeitas pelo cache de dados.

Se o contador Memória total do servidor (KB) estiver consistentemente alto, em comparação com a quantidade de memória física disponível no computador, isso pode indicar a necessidade de mais memória.

Determinando alocação de memória atual

A consulta a seguir retorna informações sobre a memória atual alocada.

SELECT
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;