Estou procurando uma indicação (se houver) que desconsideraria a opção de gargalo de memória ou a aceitaria ou me faria investigar mais.
por exemplo:
expectativa de vida da página:
SELECT [object_name], [counter_name], [cntr_value] FROM sys.dm_os_performance_counters WHERE [object_name] LIKE "%Manager%" AND [counter_name] = "Page life expectancy"
Nesta ocasião, em meu ambiente atual, tenho um servidor com 8 GB de RAM, gostaria de pedir à gerência para mais memória. Acredito que seja um gargalo de memória.
o que está usando a RAM seria outra investigação.
Este e-mail abaixo é válido para identificar possíveis gargalos de memória?
precisamos olhar SQLServer: Taxa de acertos do cache de buffer
Se essa proporção for menor que 95%, o servidor está sob pressão de memória
Espero que isso ajude,
Comentários
Resposta
Precisamos olhar para SQLServer: Taxa de acertos do cache de buffer. Se essa taxa for inferior a 95%, o servidor está sob pressão de memória
Pare de olhar para o buffer Taxa de acertos do cache para determinar a pressão da memória. Isso ocorre porque com o mecanismo de leitura antecipada no SQL Server, mais do que páginas suficientes já estão no pool de buffer para satisfazer a consulta, de modo que o BCHR não fornece dados precisos sobre a pressão da memória. Você pode até ver que o BCHR não cai quando há pressão de memória. Tudo isso foi explicado em Grande debate sobre o SQL Server sobre BCHR
A saída de PLE que você postou parece muito baixa, mas não podemos usar apenas um contador para medir a pressão da memória. PLE é mais uma indicação de atividade de E / S no servidor. É possível que, devido à intensa atividade de E / S, o PLE tenha despencado. Se você notar que a memória do servidor de destino e total ainda permanece a mesma. O que é um bom sinal.
Para Edition upto 2008 R2
. Você pode usar os contadores abaixo
-
SQLServer: Buffer Manager – CheckpointPages / sec:
-
SQLServer: Buffer Manager – Memory Grants Pendente:
-
SQLServer: Gerenciador de buffer – Memória do servidor de destino:
-
SQLServer: Gerenciador de buffer – Memória total do servidor
-
SQLServer: Gerenciador de Buffer – Páginas Livres
-
SQLServer: Gerenciador de Buffer – Bloqueio de Lista Livre / sec
-
SQLServer: Gerenciador de Buffer – Expectativa de vida da página
Para SQL Server 2012 onwards
alguns do Buffer Os contadores de pool estão obsoletos e, portanto, temos que usar contadores do gerenciador de memória
-
SQL Server: Gerenciador de memória – memória do servidor de destino (KB)
-
SQL Server: Gerenciador de memória – Memória total do servidor (KB)
-
SQL Server: Gerenciador de memória – Memória livre (KB)
-
SQL Server: Gerenciador de Memória – Memória Cache do Banco de Dados (KB)
-
SQLServer: Gerenciador de Buffer – Páginas Livres
-
SQLServer: Gerenciador de Buffer – Lista gratuita bloqueada / s
-
SQLServer: Buffer Manager – Expectativa de vida da página
Observe que se você tiver muita atividade no disco, não se esqueça de consultar os contadores relacionados ao disco também. Crie um conjunto de coletores de dados e deixe-o funcionar por 4-5 horas quando a carga no sistema estiver no pico e, em seguida, adicione o instantâneo do coletor de dados em sua pergunta. Então podemos determinar se o SQL Server precisa de mais memória ou não.
Pessoalmente, 8G é um pouco menos de RAM considerando a carga de trabalho e os requisitos do sistema operacional atualmente. No fundo, você deve sempre pensar em aumentar a RAM.
Resposta
precisamos olhar para SQLServer: taxa de ocorrência do cache de buffer
Se essa taxa for inferior a 95%, o servidor está sob pressão de memória
Espero que isso ajude,
Isso não o ajudará a decidir o gargalo de memória por conta própria com certeza. Em vez disso, eu preferiria coletar os dados para os contadores abaixo pelo menos por um dia durante o horário comercial / de carga pesada.
Memory – Available MBytes SQLServer: Buffer Manager – Page Life Expectancy SQLServer: Memory Manager – Memory Grants Pending SQLServer: Memory Manager – Target Server Memory SQLServer: Memory Manager – Total Server Memory SQLServer: SQL Statistics – Batch Requests/sec SQLServer: SQL Statistics – Compilations/sec
O melhor seria basear o servidor SQL conforme sugerido Voltar ao básico: capturando linhas de base no SQL de produção Servidores que também coletarão os contadores de perfmon necessários junto com estatísticas de espera para qualquer problema.
Além disso, 8 GB de RAM pode não ser tão adequado para o ambiente de hoje, mas novamente depende do que é a carga no sistema junto com o tamanho dos bancos de dados hospedados na instância \ instâncias.
Buffer Cache hit ratio
. Leia Grande debate sobre o SQL Server sobre o BCHR , pois nunca confiei neste contador. Você pode confiar no PLE, mas deve ver o PLE para todos os nós NUMA (se tiver)