Preciso de conselhos sobre a interpretação da métrica PLE do meu servidor que:
- é o SQL Server 2008 R2
- com 4 nós NUMA
- com 128GB RAM
Os backups completos diários começam às 02:00 e levam cerca de 1 hora para serem concluídos.
Várias métricas para as últimas 24 horas são as seguintes:
Minhas perguntas seriam:
- Qual deve ser o limite de alerta para PLE?
- O que as quedas e picos no gráfico podem indicar?
obrigada
Não há uma figura simples para limites. Isso é o mesmo que a maioria dos contadores do SQL Server. Seu sistema está ocupado embora.
Os picos provavelmente serão consultas grandes.
Para se aprofundar, você precisa entender: interprete PLE como "Estou lendo meu buffer de memória do disco a cada X segundos, isso parece muito?" Não é totalmente preciso (buffer < tamanho total da memória), mas é uma boa regra prática.
128 GB por 23 minutos é muito? São 93 MB/s de leitura, o que é muito para sustentar uma SAN ocupada. Mas se você tivesse armazenamento conectado diretamente, talvez não fosse.
Quão baixo é muito baixo? Se o seu PLE for 0, você está lendo mais rápido do que a memória pode suportar. Se for 60, você está lendo 128 GB por minuto. Mais uma vez, isso parece muito certo. Não há muito hardware que possa sustentar isso.
O guia de polegar é 300. Exceto em seu sistema, 300 significaria 25 GB de leituras por minuto ou 400 MB/s. Também muito, exceto para SSDs conectados diretamente.
Seu limite final é: onde os usuários sentem dor. O que provavelmente está próximo dos limites de sua velocidade de armazenamento sustentada (lembrando novamente que o SQL está fazendo mais do que apenas leituras).
Ninguém olha para o limite durante os backups porque os bancos de dados são tão grandes que geralmente excedem a memória e precisam percorrer o buffer várias vezes. Novamente, não é importante, a menos que os usuários sintam dor devido a isso. (E se fossem, você aumentaria a memória ou diminuiria a velocidade de backup).
Como os aplicativos de monitoramento determinam um limite? Eles geralmente são estúpidos e apenas escolhem 300. Ou 1000. Alguns amostram em horários diferentes do dia e aplicam um fator de correção e comparam com resultados anteriores - e isso fica supercomplicado se você fizer backups em uma programação semanal ou mensal; afinal, com qual linha de base anterior eles devem ser comparados?
Page Life Expectancy - Indica o número de segundos que uma página permanecerá no buffer pool sem referências.
Buffer Cache Hit Ratio - Indica a porcentagem de páginas encontradas no cache do buffer sem ter que ler do disco. https://msdn.microsoft.com/en-us/library/ms189628.aspx
Só porque o PLE está baixo não significa que você está lendo do disco. Você pode ser ou não. É melhor verificar para saber com certeza.
De acordo com Paul Randall, você precisa observar os contadores Buffer Node:Page Life Expectancy para todos os nós NUMA, caso contrário, você não obterá uma visão precisa da pressão de memória do pool de buffers e, portanto, poderá estar ausente ou reagir exageradamente a problemas de desempenho. http://www.sqlskills.com/blogs/paul/page-life-expectancy-isnt-what-you-think/
Você não deve basear o desempenho do servidor em um contador, mas em uma coleção de contadores.
A expectativa de vida útil da página do SQL Server pode ser muito alta?
Eu gostaria de olhar para lazywrites além de PLE para ver se havia pressão de memória interna.