J'ai un serveur avec 16 CPU qui est configuré avec un max degree of parallelism
de 8 et un max worker threads
réglage de zéro.
Pendant une heure donnée, mes attentes de signal étaient de 20%, mais mon utilisation du processeur du système d'exploitation pendant cette période n'a jamais dépassé 25%. Quelqu'un peut-il expliquer pourquoi mes attentes de signal étaient si élevées?
Mon fournisseur a un système de notation de premier ordre qui s'attend à ce que nous attendions 10% ou moins de signal, ou nous nous faisons taper. Comment puis-je résoudre ce problème (sans ajouter de processeurs supplémentaires)?
- Nous n'avons pas plus de 8 processeurs par nœud NUMA, donc l' indicateur de trace 8048 ne s'applique pas.
- Les attentes d'instance les plus importantes sont
CXPACKET
(70%), puisPREEMPTIVE_OS_PIPEOPS
(20%) cost threshold for parallelism
est réglé sur 50. Dois-je le relever? À quoi?- Il s'agit d'une machine physique (pas une VM), dédiée à SQL Server.
- J'utilise un outil de surveillance pour identifier les requêtes et procédures les plus fréquemment exécutées. Est-ce que je veux regarder un CPU élevé, des E / S élevées ou une durée élevée? Normalement, notre application est intensive en E / S, donc je règle les E / S élevées. Mais puisque le problème est que le signal attend, dois-je regarder un CPU élevé?
- J'espérais éviter la recommandation de Max Vernon de
MAXDOP
passer à 4, car l'application effectue des requêtes de style entrepôt qui nécessitent des threads supplémentaires.