Tout processus non SQL Server qui consomme de l'UC peut rendre l'ensemble de SQL Server complètement inutilisable.
Par exemple, Windows Update arrêtera SQL Server pendant le déballage des assemblys .Net.
Tout processus antivirus, même s'il est configuré pour exclure les fichiers et dossiers de données SQL Server, peut entraîner la non-réponse de SQL Server pendant qu'il analyse les fichiers et décompresse les fichiers de définition de virus mis à jour.
Si vous avez installé un logiciel de gestion, tel qu'IBM Tivoli Server Monitor, et qu'il décide d'utiliser 100% d'un cœur, vous ne pourrez probablement rien faire d'autre que l'arrêt à froid de la machine. Ne me demandez pas pourquoi j'en parle.
Je pourrais continuer, mais il suffit de dire que tout serveur avec un seul cœur demande simplement des problèmes de performances et de gestion. Vérifiez que tout ordinateur avec un seul cœur doit être considéré comme inutilisable aujourd'hui. Heck, mon téléphone a 8 cœurs.
Pendant que vous y êtes, convaincre le gars de la virtualisation de donner à chaque serveur SQL une réservation de mémoire raisonnable qui garantira que la mémoire de SQL Server ne sera pas paginée de la mémoire principale des hôtes sur le disque.
Pour les serveurs SQL hébergés par VMware, vous devez configurer VMware conformément au guide des meilleures pratiques d'architecture SQL Server sur VMware .
Cela se résume vraiment à une machine virtuelle à cœur unique ne peut exécuter qu'un seul thread à un moment donné. La virtualisation n'est pas une solution miracle pour cette situation d'un cœur par thread.
Les points ci-dessus tiennent compte du fait que Windows NT (la base de code de 1993 sur laquelle toutes les versions modernes de Windows sont construites) utilise le multitâche préemptif. Le multitâche préemptif permet au système d'exploitation d'appliquer le multitâche en forçant le changement de contexte à des horaires réguliers. Même avec le multitâche préemptif, un serveur avec un seul cœur souffrira toujours de très mauvaises performances si une seule tâche décide d'utiliser autant de CPU que possible, car l'O / S donnera à cette tâche autant de temps CPU que possible. tout en permettant l'exécution de tâches de priorité plus élevée, forçant le processeur à 100%. Si SQL Server est en cours d'exécution au moment où le CPU passe à 100%, le quantum de CPU de SQL Server sera réduit au point de devenir très visible. Dans les scénarios ci-dessus que j'ai décrits, je n'ai pasdisons que la machine (ou même SQL Server) "s'arrêtera" ou "mourra" complètement; ce serait tout simplement faux. Cependant, la machine peut devenir si occupée que, à toutes fins utiles, la machine devient inutilisable. L'ajout d'un deuxième cœur, bien que n'étant certainement pas une panacée, réduit la probabilité que la machine ne réponde plus complètement. Chaque cœur supplémentaire signifie qu'un autre thread peut fonctionner à 100% CPU sans que la machine devienne inutilisable.