Contención TempDB con 24 archivos tempdb físicos en 48 núcleos AMD Opteron box

8

Acabo de recibir la siguiente notificación sobre una instancia de SQL Server 2005. La instancia tiene una relación de núcleo a archivo tempdb de 2: 1 para un recuento total de archivos tempdb de 24 archivos. La contención no debería estar sucediendo: ¿cómo detectaría la fuente de esta disputa? TempDB y todas las demás bases de datos están en almacenamiento SAN a través de Ethernet de 10 GB. La SAN tiene 46 unidades SAS de 10k configuradas en una matriz RAID-60. Esta matriz se comparte con varios servidores VMWare y un servidor de Exchange o dos.

Notificación del Administrador de diagnóstico de Idera SQL:

8/11/2012 10:49:00 PM, la contención de Tempdb (ms) en MGSQL01 es crítica.

Se ha detectado contención de pestillo Tempdb en MGSQL01. El tiempo de espera total detectado es de 1782 milisegundos. Esto indica que el rendimiento se ve afectado por la contención en los mapas de asignación en tempdb. Si se trata de un problema habitual, se puede solucionar siguiendo las mejores prácticas con respecto al recuento de archivos tempdb, el tamaño y el subsistema IO.

Tiempo de espera PFS: 1782 ms Tiempo de espera GAM: 0 ms Tiempo de espera SGAM: 0 ms

Contención de Tempdb (ms): tiempo de espera actual para mapas de asignación de tempdb (GAM, SGAM y PFS), en milisegundos. Esta alerta solo se puede generar en instancias que ejecutan SQL 2005 o superior.

Max Vernon
fuente
1
Heya Max, solo un par de preguntas rápidas. Tuve que lidiar con un problema similar muy recientemente. -¿Es pagelatch_SH o pageiolatch_SH? Estoy bastante seguro de que es pagelatch_SH en su caso, pero solo quiero estar seguro. -¿Ha utilizado eventos extendidos para rastrear qué consultas están acumulando la mayor cantidad de tiempos de espera PAGELATCH_SH? ¿También puede publicar sus 20 estadísticas de espera principales de SELECT * FROM SYS.DM_OS_WAIT_STATS ORDER BY 3 ¿Qué le dice perfmon? ¿De hecho, la unidad TempDB está experimentando una contención de E / S real? ¿Pico en la EM?
Ali Razeghi
2
¿Están las esperas en una página PFS en un archivo en particular o en todas ellas? ¿Todos los archivos tempdb son del mismo tamaño? ¿Sabes qué tipo / tamaño de objetos se asignan en tempdb? ¿Las tablas temporales se truncan explícitamente y se eliminan por código de aplicación? ¿Has pensado en implementar el indicador de traza 1118?
Darin estrecho
2
@MaxVernon: Como regla general, siempre ejecute T1118. Realmente no hay razón para correr sin él
Thomas Kejser
1
@maxvernon, I +1 su elemento de conexión. Buena esa.
Edward Dortland el

Respuestas:

5

El indicador de seguimiento 1118 fuerza asignaciones de extensión uniformes en lugar de asignaciones de páginas mixtas. El indicador de rastreo se usa comúnmente para ayudar en la escalabilidad de TEMPDB al evitar SGAM y otros puntos de contención de asignación. Si tiene SQL Server 2008 o SQL Server 2005 y la corrección se aplicó y aún se encuentra con una contención TEMPDB, considere el indicador de traza 1118 para obtener más ayuda para resolver la contención.

Troya
fuente
1
¿Podría explicar, preferiblemente con un ejemplo, cómo el cambio de la asignación compartida de una sola página a la asignación de extensión dedicada resolverá la contención de PFS?
Edward Dortland el