Tengo un servidor con 16 CPU que está configurado con un max degree of parallelism
8 y una max worker threads
configuración de cero.
Durante una hora determinada, mis esperas de señal fueron del 20%, pero la utilización de mi CPU del sistema operativo durante ese tiempo nunca superó el 25%. ¿Alguien puede explicar por qué mi señal de espera fue tan alta?
Mi proveedor tiene el mejor sistema de puntaje en su clase que espera que tengamos un 10% o menos de espera de señal, o que nos critiquen. ¿Cómo puedo solucionar esto (sin agregar CPU adicionales)?
- No tenemos más de 8 CPU por nodo NUMA, por lo que Trace Flag 8048 no se aplica.
- Las esperas de instancia más grandes son
CXPACKET
(70%), luegoPREEMPTIVE_OS_PIPEOPS
(20%) cost threshold for parallelism
está establecido en 50. ¿Debo subirlo? ¿A qué?- Esta es una máquina física (no una VM), dedicada a SQL Server.
- Estoy usando una herramienta de monitoreo para identificar las consultas y procedimientos que se ejecutan con mayor frecuencia. ¿Quiero mirar CPU alta, E / S alta o alta duración? Normalmente nuestra aplicación es de E / S intensiva, por lo que sintonizo E / S altas. Pero dado que el problema es la espera de la señal, ¿tengo que mirar a la CPU alta?
- Esperaba evitar la recomendación de Max Vernon de bajar
MAXDOP
a 4, porque la aplicación realiza algunas consultas de estilo de almacén que necesitan hilos adicionales.