La expectativa de vida útil de la página de SQL Server 2012 se restablece a 0 después de aproximadamente 50 días

12

He notado un comportamiento extraño en un clúster HA de 2 servidores y esperaba que alguien pudiera confirmar mi sospecha, o tal vez ofrecer alguna otra explicación ... Aquí está mi configuración:

  • Una instalación de 2 servidores SQL 2012 SP1
  • SQL AlwaysOn HA se ha habilitado para algunas bases de datos
  • CPUs son 2.4GHz, 4 núcleos
  • La RAM es de 34 GB (es una instancia de AWS, de ahí el número impar)
  • La utilización de recursos es relativamente baja: cada servidor tiene más de 14 GB de memoria libre, y SQL no está limitado a la cantidad de memoria que debe usar
  • El tiempo de acceso al disco está bien: rara vez supera los 15 ms / lectura o escritura
  • Las bases de datos no son grandes: 1 GB, 1,5 GB, 7,5 GB
  • El proceso del servidor SQL utiliza bytes privados de 16 GB, conjunto de trabajo de 15 GB

En general, no se observan problemas de recursos. Ahora para la parte extraña. SQL no se reinicia (el proceso se ha estado ejecutando durante casi 6 meses), pero parece que cada ~ 50 días, el contador de expectativa de vida de la página cae a (casi) 0. Hasta ese punto, sube de manera constante, sin caídas. Aquí hay un gráfico de rendimiento:

ingrese la descripción de la imagen aquí

Cuando miro los datos del contador (no tengo el número exacto, solo una agregación por hora) parece que el valor del contador PLE alcanzó aproximadamente 4,295,000 segundos (aproximadamente 50 días) cada vez (al menos cada vez que tengo datos).

Mi loca teoría es que el número PLE se mantiene en milisegundos como un int largo sin signo (que tiene un límite de 4,294,967,295) y a los 49,71 días se restablece, ya sea por diseño o debido a un error. Esto explicaría el comportamiento de los dos servidores y el patrón idéntico que tienen. O podría ser algo totalmente diferente y simplemente no tengo ningún sentido. :)

¿Alguien ha visto algo así o puede explicar este comportamiento?

PD: vi esta publicación, pero mi caso parece un poco diferente.

PPS Este es un reenvío: originalmente lo publiqué aquí , pero se me informó que la audiencia aquí es más apropiada.

¡Gracias!

CRCerr0r
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Paul White 9

Respuestas:

3

He visto este comportamiento en un sitio de cliente que ejecuta SQL2012 SP1. Los detalles aquí fueron NUMA y PLE que demuestran un patrón de 'diente de sierra' pero en un ciclo por hora.

Un par de hilos en SQLServerCentral discutieron sobre esto:

http://www.sqlservercentral.com/Forums/Topic1415833-2799-1.aspx http://www.sqlservercentral.com/Forums/Topic1424826-2799-1.aspx

El resultado final es que la aplicación de SP1 CU4 parece solucionar el problema.

CU4 contiene la solución de aspecto inocente Hay una actualización disponible para la Administración de memoria de SQL Server 2012 KB2845380

¿Vale la pena intentarlo?

Kev Riley
fuente
Gracias por publicar esto (perdón por la respuesta tardía, por alguna razón nunca recibí notificación de tu publicación). Eché un vistazo a los enlaces: se parecen un poco, por lo que intentaré duplicar la configuración en QA, aplicar CU4 (o probablemente incluso ir directamente a SP2), luego verificar nuevamente. Con el ritmo que veo esto (cada 50 días) pasará un tiempo antes de que pueda confirmar, pero volveré a publicar cuando tenga resultados. Por cierto, mis patrones aún se mantienen: escalada constante durante ~ 50 días, luego caída brusca a ~ 0 y escalada nuevamente: un total de 4 desde que se inició el servicio en diciembre.
CRCerr0r
Actualización ... He confirmado esto en nuestro entorno de control de calidad. Las estadísticas que obtuve de allí son: Días totales entre reinicios: 49.71 (+/- 1 minuto); El valor máximo de PLE alcanzó: 4,294,961 (en muestras de 1 minuto, por lo que podría haber sido un poco más alto). Eso prácticamente confirma las observaciones de producción. Aplicaré CU4 e informaré en ~ 50 días ... :)
CRCerr0r
1
¿Alguna noticia sobre esto?
Michael Green