Expectativa de vida da página (PLE) no SQL Server

Expectativa de vida da página (PLE) no SQL Server


A expectativa de vida útil da página (PLE) é a idade de uma página de dados em segundos no cache do buffer ou na memória do buffer após consultar as tabelas com a página de carregamento de dados na memória do buffer. O valor de expectativa de vida da página indica a pressão da memória na memória alocada para a instância do SQL Server. Na maioria dos casos, uma página será removida do buffer periodicamente.

O fundamento básico do Microsoft SQL Server para consultar dados é carregar as páginas de dados necessárias no buffer pool do disco e devolvê-las ao cliente. Se o buffer não tiver espaço suficiente para processá-lo, as páginas de dados mais antigas serão erradicadas para liberar espaço conforme necessário para novas páginas.

Como padrão tradicional, o PLE (Page Life Expectancy) não deve ser inferior a 300 segundos (5 minutos), mas, na verdade, esse valor pode variar com base na carga do SQL Server. De qualquer forma, um buffer é gerenciado pelo nó numa e pode ser dividido em vários nós numa. Mesmo assim, pode ser mais desafiador gerenciar a distribuição de carga para os vários numas quando ocorre uma carga de trabalho pesada. O PLE pode aumentar os problemas de desempenho, pressionando o buffer quando o PLE cair e não aparecer por um tempo. Pode haver muito mais atividades que podem causar esse problema.

  • Manutenção do índice
  • Grandes consultas (ou seja, consulta de relatório)
  • Consultas com um plano de execução inadequado e menos eficiente
  • Atividade de migração de dados
  • Parâmetro Sniffing issue
  • Índices duplicados
  • Vários planos de execução para um único procedimento e muito mais

Obtenha o PLE para sua instância do SQL Server com a ajuda da instrução T-SQL

 Contador PLE usando T-SQL

Aqui, cntr_value representa o PLE que é 29570 no conjunto de resultados da consulta acima.

Leia Também  Monitorando atividades usando sp_WhoIsActive no SQL Server

Sempre assumimos que o desempenho da consulta está prejudicando o lago de memória buffer e o SQL Server não possui buffer pool suficiente para armazenar em cache as informações. Não está culpando o lado pelo pior desempenho da consulta porque um plano de execução de consulta é tudo. Se o seu plano de consulta estiver incorreto, a tabela será digitalizada com dados de carregamento desnecessários na memória do buffer.

As situações acima discutem os fatores sobre o que o PLE pode obter. Mas e o PLE caindo em um momento específico? Felizmente, cada SQL Server de produção terá a tarefa de manutenção de dados internos e a manutenção padrão, que são executadas pelo trabalho do SQL Server e executadas fora do horário de pico. Mesmo, você pode observar a flutuação no PLE (expectativa de vida da página) quando qualquer E / S pesada é executada pelo SQL Server com a grande operação CRUD.

Expectativa de vida útil da página de monitoramento

O valor do contador PLE é uma medida essencial da pressão na memória do buffer em unidades de segundos. Os usuários podem capturá-lo com a ajuda do SSMS, de qualquer outra ferramenta de terceiros ou do monitor de desempenho da Microsoft; Retorna sempre o valor médio. Os usuários podem encontrar o valor atual pela instrução T-SQL acima. Ainda, a análise é necessária em um período específico para verificar se a flutuação ocorre no ponto do tempo. Os usuários podem usar o Windows Performance Monitor adicionando o contador PLE para rastrear o mesmo.

PLE no Windows Performance Monitor

Várias instâncias do SQL Server podem ser configuradas no único SQL Server. Para monitorar uma instância específica do SQL Server, o usuário pode selecionar na lista suspensa do contador da tela do monitor de desempenho. Na imagem abaixo, você pode ver que o contador PLE existe no MSSQL $ JERRY: Buffer Manager.

Aqui, MSSQL $ JERRY é detalhes do serviço da instância do SQL Server e Buffer Manager é o nome do objeto.

Por exemplo, o serviço da instância do SQL Server acima é reiniciado para obter alguma flutuação na expectativa de vida da página. Após reiniciá-lo, a contagem de PLE começa em 0 e aumenta com os dados da consulta em segundo plano. Novamente, a contagem diminui quando a alocação de memória é reduzida e os dados são buscados nas tabelas em segundo plano.

Leia Também  Uma maneira de melhorar STRING_SPLIT no SQL Server - e você pode ajudar

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Aqui, podemos concluir que a contagem de PLE será reduzida quando a memória buffer não tiver espaço suficiente para armazenar novas páginas de dados quando qualquer operação READ / WRITE for executada.

Desempenho do PLE no painel

Como calcular a expectativa de vida útil da página

Conforme o padrão da Microsoft, seguimos uma regra de 300 segundos. Se o PLE demora menos de 300 segundos (5 minutos), a pressão da memória é muito alta e precisamos cuidar do lado do desempenho. Ainda assim, esse cálculo foi para alocação de apenas 4 GB de memória no SQL Server. Para o seu servidor, ele deve ser diferente conforme a fórmula. Você deve se preocupar com a instância do SQL Server quando o PLE cair do que o cálculo abaixo:

PLE (Expectativa de vida útil da página) = ((Alocação de memória buffer (GB)) / 4) * 300

Por exemplo, a máquina está configurada com 128 GB e 110 GB são alocados à instância do SQL Server, então o limite do PLE será o seguinte:

Limite de PLE (expectativa de vida útil da página) = (110/4) * 300

Limite de PLE (expectativa de vida da página) = 8250 segundos

Ninguém pode dizer que número será recomendado para o limite padrão porque cada SQL Server tem configurações diferentes de acordo com o caso de uso e os requisitos. Se o seu PLE cair repentinamente, a primeira coisa a ser feita é verificar a alocação de memória. É quantidade suficiente de tamanho para o SQL Server? Se sim, verifique a solicitação atualmente em execução. Existe algum encadeamento de longa duração que consome mais memória? Se sim, revise a instrução de consulta em execução no momento.

O desempenho será baseado no disco, que é um pouco mais lento que a memória principal. Eventualmente, produz muitas E / S de disco e sobrecarrega o armazenamento porque a memória não está sendo processada com eficiência pelo servidor. Problema desnecessário no uso da memória deve ser observado e aproveite para otimizá-lo com uma investigação adequada.

  • Quais objetos estão usando mais memória cache do buffer?
  • A atribuição de índices e partições de objetos é precisa e eficaz?
Leia Também  Como se preparar para o Exame AZ-900: Fundamentos do Microsoft Azure

Os usuários podem monitorá-lo consultando sys.dm_os_performance_counters DMV para descobrir que o limite de PLE está cruzando o sublinhado ou não. Se o valor do contador encontrado for menor que o seu cálculo, ele deverá enviar um email para a equipe responsável para observar e monitorar os parâmetros relacionados à pressão de memória. Recebemos a indicação do aumento da pressão no buffer pool quando a expectativa de vida da página cai para um valor típico e permanece lá por um período mais prolongado. Possivelmente, este é o sinal de que podemos precisar de mais memória. É recomendável adicionar mais memória quando a carga de trabalho aumenta gradualmente, e o PLE está se movendo para baixo lentamente. No entanto, quando algo mais estiver usando mais memória (por exemplo, planeje o cache). Nesse cenário, a pressão do conjunto de buffers aumenta, mas não há alteração na carga de trabalho. Um monitor consecutivo permite a capacidade de medir e avaliar coisas em mais problemas. Depois disso, é possível permitir que o OpsMgr verifique o valor e gere um alerta quando o valor atingir um limite específico para valores X.

Conclusão

PLE (Page Life Expectancy) não é um único parâmetro do gerenciador de buffer que pode afetar o desempenho do SQL Server; Existem muitos outros na lista de gerenciadores de buffer. Podemos considerar que a pressão da memória do buffer pode ser o principal problema, se encontrado. Atualmente, vemos caixas de memória maiores e é bastante comum ter PLE na faixa dos milhares.

Há muitas coisas a serem monitoradas para DBAs no ambiente de produção. Se você encontrar algum problema no lado da memória buffer, o Windows Performance Monitor ajudará bastante a observar as estatísticas em tempo real.

Jignesh Raiyani
Últimas mensagens de Jignesh Raiyani (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br