Exibindo o uso de RAM do cache do SQL?

2

Espero que isso tenha uma solução muito simples, mas tenho a sensação de que não. Não consegui encontrar nenhuma informação sobre isso em nenhum outro lugar, o que não é um bom começo!

Basicamente, estamos executando o SQL Server 2008 em uma máquina Windows Server 2008 R2 com 16 GB de RAM .

O problema é que nosso uso de RAM continua subindo para 15.6GB e causando problemas, e eu queria saber se poderia ser o cache do SQL.

Agora configuramos o SQL para usar um min / max de 13 GB, mas ainda estou preocupado que possa haver algo mais comendo a RAM, então antes de reinicializar o servidor e liberar o que estiver usando, pensei Eu tentaria ver se era SQL por trás disso.

Como posso ver o tamanho do uso de RAM do cache do SQL? É apenas a figura no gerenciador de tarefas?

Obrigado por qualquer ajuda.

    
por Django Reinhardt 23.02.2010 / 21:07

2 respostas

4

Perfmon.exe

Primeiro, examine o tipo de objeto Process. Isso tem uma instância para cada processo único no sistema e contém métricas como Bytes virtuais, Pico de bytes virtuais, Conjunto de trabalho e Pico do conjunto de trabalho. A instância do SQL Server será nomeada após o nome do processo, 'sqlservr'. Observando todas as instâncias, você pode ver rapidamente qual processo causa mais consumo de memória.

Em seguida, observe os próprios contadores do SQL Server. No objeto SQL Server: Buffer Manager, você encontrará os próprios contadores do SQL Server. Você precisa examinar o contador Total Pages que conta toda a memória rastreada internamente pelo SQL Server. O contador está em páginas , então você precisa multiplicar por 8192 para obter bytes.

Pode haver uma grande discrepância entre o contador Process Virtual Bytes e o total de páginas do próprio SQL. Isso pode acontecer quando o SQL usa o AWE para mapear a memória e o SQL também pode usar o AWE em plataformas x64.

Você também pode acompanhar o consumo SQL Server moemory de isnide, olhar para o sys.dm_os_memory_clerks ou executar DBCC MEMORYSTATUS .

Se você achar que o SQL Server usa a memória: feche sua sessão, coloque suas mãos no teclado e vá embora . Este é o comportamento normal, pretendido e desejado. Se você precisar de memória para qualquer outro processo, afaste esse processo do mesmo host que o SQL. Nunca execute qualquer outra coisa no mesmo host executar do SQL Server (sem IIS, não ASP, não exhange, não DC, não DNS / Ventos, nada ).

    
por 23.02.2010 / 21:23
1

Apenas um pequeno comentário: se você pode livremente " redefinir o servidor e liberar o que estiver usando ", você também pode simplesmente parar o serviço do SQL Server.

Se você fizer isso, você saberá com certeza se é realmente o SQL Server que está usando toda a sua memória.

    
por 23.02.2010 / 21:54