Ho un server con 16 CPU che è configurato con un max degree of parallelismdi 8 e max worker threadsun'impostazione di zero.
Per una determinata ora, il mio segnale era in attesa del 20%, ma il mio utilizzo della CPU del sistema operativo durante quel periodo non è mai andato oltre il 25%. Qualcuno può spiegare perché le mie attese di segnale erano così alte?
Il mio fornitore ha un sistema di punteggio migliore nella sua categoria che si aspetta che ci aspettiamo un segnale del 10% o meno o che ci venga oscurato. Come posso risolvere questo problema (senza aggiungere ulteriori CPU)?
- Non abbiamo più di 8 CPU per nodo NUMA, quindi Trace Flag 8048 non si applica.
- Le attese più grandi sono
CXPACKET(70%), quindiPREEMPTIVE_OS_PIPEOPS(20%) cost threshold for parallelismè impostato su 50. Devo aumentarlo? A cosa?- Questa è una macchina fisica (non una macchina virtuale), dedicata a SQL Server.
- Sto usando uno strumento di monitoraggio per identificare le query e le procedure più frequenti. Voglio guardare CPU alta, I / O alto o durata elevata? Normalmente la nostra app è intensiva per l'I / O, quindi ottimizzo l'I / O elevato. Ma poiché il problema è l'attesa del segnale, devo guardare CPU alta?
- Speravo di evitare la raccomandazione di Max Vernon di scendere
MAXDOPa 4, perché l'app esegue alcune query in stile magazzino che richiedono i thread extra.