La métrica de expectativa de vida de la página de SQL Server (PLE) se ha considerado durante mucho tiempo un indicador de rendimiento clave para los administradores de bases de datos que analizan el estado general de sus instancias de base de datos. PLE muestra si el sistema está bajo presión de memoria interna utilizando contadores proporcionados por el objeto Buffer Manager.
Una mirada más cercana a la expectativa de vida de la página
PLE es una medida del tiempo (en segundos) que se espera que una página de archivo de datos permanezca en el grupo de búfer de SQL Server. Esta métrica no es un agregado ni una acumulación, sino simplemente un valor puntual que los DBA consultarán en el Administrador de búfer.
SQL Server solo lee páginas de datos del grupo de búfer (es decir, lectura lógica), por lo que si la página no está en el grupo de búfer, la encuentra en el disco (es decir, lectura física) y mueve la página al grupo de búfer para que puede hacer una lectura lógica. Este es un proceso que requiere mucho tiempo y puede afectar negativamente el rendimiento.
¿Qué es un valor PLE "bueno"?
Un valor PLE alto significa que una página permanece más tiempo en el grupo de búfer, por lo que es menos probable que SQL Server tenga que ir al disco en busca de la página de datos, lo que hace que el sistema se ejecute más rápido.
Históricamente, los DBA consideraban 300 segundos (cinco minutos) como el punto óptimo de PLE. Sin embargo, ese número es bastante arbitrario. Microsoft recomendó 300 como el estándar PLE en la década de 2000, cuando la memoria era limitada.
Hoy en día, los administradores de bases de datos no se enfocan en un número "correcto" porque los cubos de memoria son estándar en la mayoría de los sistemas. No es inusual que SQL Server se ejecute en un sistema que tiene TB de RAM a su disposición, por lo que los DBA han adoptado un enfoque formulado para identificar un valor PLE "bueno":
Expectativa de vida de la página =300 segundos por cada 4 GB de RAM en su servidor
Sin embargo, podría decirse que es más importante monitorear continuamente los valores PLE en busca de cambios en la consistencia para que pueda identificar problemas de memoria y resolverlos rápidamente.
Si trabaja con un gran volumen de datos, es importante tener en cuenta que los servidores más grandes suelen tener varios PLE. Cada nodo de acceso a memoria no uniforme (NUMA) obtiene su propio valor PLE, y luego esos números se calculan para obtener el valor PLE del servidor. Por ejemplo, tome el valor PLE del nodo x 1000 (haga esto para todos los nodos NUMA). Sume los valores de todos los nodos, luego divida por el número total de nodos NUMA, luego divida nuevamente por 1,000. Esto le dará el servidor PLE.
Cómo determinar si existe un problema con la expectativa de vida de la página
Las fluctuaciones en el PLE son normales porque se basan en la carga de trabajo. El seguimiento de tendencias altas, medias y bajas puede mostrarle si ciertos procesos, como los análisis de tablas o el vaciado de la memoria caché del búfer, deben ajustarse para mejorar PLE.
Una buena manera de determinar si hay un problema es si el rango normal de valores de PLE cae y se mantiene bajo. Esto indica que es probable que haya una mayor demanda y presión sobre el grupo de almacenamiento intermedio.
¿Significa esto que necesita arrojar más memoria al problema? Quizás. Tal vez no.
Resolución de problemas de expectativa de vida baja de la página de SQL Server
Hay varias razones por las que los valores de PLE pueden tener una tendencia baja. Es importante solucionar el problema porque la solución no es la misma para todas las causas principales. Estos son tres de los culpables con mayor probabilidad de ralentizar su PLE:
Memoria insuficiente
Si la carga de trabajo aumenta constantemente y el PLE disminuye, es probable que tenga poca memoria. Agregar memoria puede ayudar a aumentar el PLE, pero no hará que las consultas se ejecuten de manera más eficiente.
Operaciones Costosas
Si la carga de trabajo no ha cambiado, pero hay una mayor demanda en el grupo de búfer, es posible que los valores atípicos estén usando más memoria. Compruebe si hay trabajos de mantenimiento en ejecución o reconstrucciones de índices en curso.
Estadísticas obsoletas
Las estadísticas obsoletas pueden provocar cambios en el plan de consulta. Esto aumenta la demanda en el grupo de búfer al hacer que se ejecuten operaciones costosas porque no están sincronizadas con las nuevas estadísticas.
Cómo corregir la esperanza de vida baja de la página optimizando las consultas
La mejor manera de corregir los valores bajos de PLE es yendo a la fuente y optimizando sus consultas de SQL Server. Esto viene con una bonificación adicional porque la optimización de consultas mejorará el rendimiento general de su sistema al mismo tiempo.
Hay varias cosas que querrá hacer que lo ayudarán a optimizar las consultas para lograr la máxima mejora de PLE:
- Eliminar índices no utilizados
- Fusionar índices duplicados
- Busca consultas grandes
- Sepa qué hay en el grupo de búfer
- Índices de desfragmentación
- Actualizar estadísticas
- Purgar datos
Seguimiento de la esperanza de vida de la página a lo largo del tiempo
Aunque PLE es una métrica de un punto en el tiempo, observar el PLE a lo largo del tiempo es una forma importante de identificar problemas temprano y solucionarlos rápidamente antes de que el rendimiento se vea afectado significativamente.
Hay muchas formas de monitorear la métrica PLE a lo largo del tiempo e identificar las consultas cuyas transacciones generan una gran cantidad de lecturas. Los DMV y los eventos extendidos en SQL Server son los métodos probados y verdaderos y han sido fundamentales en este proceso de recopilación de datos. Pero también son manuales y consumen mucho tiempo, y ofrecen beneficios limitados cuando se trata de obtener una perspectiva histórica del rendimiento de las métricas a lo largo del tiempo.
Una solución comercial como Spotlight Cloud no solo brinda a los DBA la capacidad de rastrear PLE a lo largo del tiempo de forma inmediata, sino que también analiza la carga de trabajo para identificar qué consultas y actividades atípicas están causando presión en el grupo de búfer para que pueda aislar y remediar el problema. problema y optimice el rendimiento de su servidor SQL.
Publicado originalmente en abril de 2019 y actualizado en septiembre de 2020.