ANTECEDENTES Recientemente he estado buscando algunos tiempos de espera CXPacket bastante altos que me han hecho usar SQL Sentry para monitorear la actividad del procesador de cerca.
Una cosa que he notado como resultado es que tenemos picos masivos en el cambio de contexto. A continuación se muestra una muestra de 5 minutos, pero este patrón es muy común durante todo el día.
Como puede ver, se dispara con bastante frecuencia. Ahora, mi comprensión de esto me llevaría a creer que esto sería el resultado de la presión de la CPU. Sin embargo, durante ese tiempo apenas se supera el 60%.
Después de un poco de investigación, esto me llevó a creer que esto está sucediendo como resultado del hiperprocesamiento. Sé que había leído antes algunos de los peligros del hiperprocesamiento. Sin embargo, eso fue escrito hace muuuucho tiempo.
Para acortar una historia larga. ¿Es probable que Hyper Threading sea el culpable de estos picos en el cambio de contexto? ¿Es posible que el cambio de contexto esté afectando negativamente mis consultas paralelas? ¿Debo deshabilitar hyper threading en mi entorno?
ACTUALIZAR aunque esto específico está sucediendo en mi entorno, la pregunta en su núcleo es más universal. ¿Qué tan impactantes pueden ser los altos niveles de cambio de contexto en consultas paralelas? ¿Puede el hiperprocesamiento causar este tipo de problema?
En última instancia, la mayor parte de lo que encuentro en Internet sugiere que Hyper Threading y SQL Server no son buenos amigos, sin embargo, la mayoría de esa información está muy anticuada.
Mi sistema Hubo muchas preguntas de configuración, así que las abordaré aquí para que puedan descartarse. Tenemos la configuración de potencia en el rendimiento tanto en el sistema operativo como en el nivel bio. Nuestro Maxdop está establecido en 8 y el umbral de costo para el paralelismo es 25. Tenemos 32 núcleos lógicos y 16 físicos. Además, este es en su mayor parte un escenario de carga de almacenamiento de datos.