viernes, 18 de marzo de 2016

Page Life Expectancy


Incluso una lectura superficial de libros y artículos sobre la supervisión del rendimiento de SQL Server le dirá que la presión de memoria de SQL Server es lo primero que se debe vigilar. No es lo único, ni mucho menos, el CPU, E/S de disco y contadores internos de SQL Server son de importancia crítica para obtener la imagen completa, pero son los contadores de memoria los que a menudo nos muestran las primeras indicaciones de un rendimiento sub-óptimo
La memoria y la forma en que SQL Server la utiliza, está justo en una especie de punto de intersección triple entre la CPU, E/S de disco y  la presión de memoria,  pueden indicar índices que faltan, tablas mal diseñados, falta real de la memoria en el servidor para la carga de trabajo, otras aplicaciones que se ejecutan en el sistema, los usuarios iniciar sesión en el servidor y así sucesivamente. Por el contrario, lo que permite SQL Server para utilizar más memoria puede ayudar a cubrir una gran cantidad de estos y otros temas
Una de las  más importantes medidas  es el PLE (Page Life Expectancy)

Page Life Expectancy

Por mucho, el contador de rendimiento más citado es Page Life Expectancy (también conocido como PLE). Este contador es parte del objeto de administrador de búfer de SQL Server y se define en MSDN como "el número de segundos que una página permanecerá en el grupo de búferes sin referencias." A pesar de que no lo dice en su definición ni en su nombre, este contador en realidad muestra el promedio, no el total o mínimo/máximo, de la vida útil de la página en el grupo de búferes. Por lo que este contador indica cuánto tiempo, en segundos y, en promedio, la página se aloja en el grupo de búferes y cuanto más tiempo una página promedio está viviendo en el grupo de búferes, mayores serán las posibilidades que SQL Server lo encontrará allí cuando lo necesite de nuevo en lugar de tener que leer desde el disco
La relevancia de seguimiento de este contador no debe ser exagerada, un valor bajo indica presión de memoria de SQL Server, ya que conduce necesariamente a más de E/S, que es, por supuesto, el componente más lento en la pila de varios órdenes de magnitud. Por ejemplo, un índice de desaparecidos en una gran tabla (tabla para la que las páginas no caben en la memoria RAM disponible para el grupo de búferes de SQL Server) finalmente conducirá a un análisis completo que desembocará por supuesto a un aumento de la lectura (problema) y la saturación de páginas potencialmente útiles de otras tablas (problema que agrava). Tal acontecimiento sería fácilmente detectable siguiendo el contador PLE con un valor necesariamente bajo.
Varias autoridades en la materia, incluyendo al Cliente de SQL Server Advisory Team (CAT), indican que el valor de este contador debe ser de al menos 300 para aplicaciones OLTP. CAT de SQL Server también indica que los valores para este contador nunca deben bajar rápidamente en un 50% o más
Hoy en día el valor 300 es demasiado pequeño para ser utilizado como un umbral. Se determinó este valor cuando los servidores generalmente tenían instalado 4 GB de RAM. Hoy en día, no es raro que un SQL Servers tengan más de 48 GB de RAM. En lugar del viejo 300 de umbral, una fórmula de adaptación se puede utilizar para obtener una estimación del umbral:
 ((MAXBP(MB)/1024)/4)*300
Donde MAXBP (MB) representa la cantidad máxima de memoria del Buffer Pool.
El contador SQL Server:Buffer Manager:Database Page se puede utilizar para obtener el número de páginas que deben ser convertidos a MB: (páginas * 8) / 1024 y se utiliza como valor MAXBP (MB).

La fórmula anterior considera cada 4 GB de Buffer Pool (por nodo NUMA o de otro tipo) para tener sus propios 300 segundos previstos por PLE.
Además de la fórmula, el valor de referencia se puede determinar al determinar una línea base para la medida de Page Life Expectancy.

Para consultar el valor de este contador ejecute el siguiente:

SELECT [cntr_value] 
FROM sys.dm_os_performance_counters 
WHERE [object_name] LIKE '%Buffer Manager%' 
AND [counter_name] = 'Page life expectancy' 

Traducción de: http://solutioncenter.apexsql.com/top-sql-server-memory-pressure-counters/

No hay comentarios:

Publicar un comentario