Jeder Nicht-SQL Server-Prozess, der CPU verbraucht, kann dazu führen, dass der gesamte SQL Server vollständig unbrauchbar wird.
Beispielsweise stoppt Windows Update SQL Server, während .NET-Assemblys entpackt werden.
Jeder Anti-Virus-Prozess kann dazu führen, dass SQL Server beim Scannen von Dateien und beim Entpacken aktualisierter Virendefinitionsdateien nicht mehr reagiert, selbst wenn er so konfiguriert ist, dass SQL Server-Datendateien und -Ordner ausgeschlossen werden.
Wenn Sie eine Verwaltungssoftware wie IBM Tivoli Server Monitor installiert haben und 100% eines Kerns verwenden, können Sie den Computer wahrscheinlich nur kalt herunterfahren. Fragen Sie mich nicht, warum ich das anspreche.
Ich könnte weitermachen, aber es reicht zu sagen, dass jeder Server mit einem einzelnen Kern einfach nach Problemen mit der Leistung und Verwaltbarkeit fragt. Überprüfen Sie, ob jeder Computer mit einem einzelnen Kern heute als unbrauchbar angesehen werden sollte. Mein Telefon hat 8 Kerne.
Überzeugen Sie den Virtualisierungstyp, jedem SQL Server eine angemessene Speicherreservierung zu geben, um sicherzustellen, dass der Speicher von SQL Server nicht aus dem Hauptspeicher des Hosts auf die Festplatte ausgelagert wird.
Bei seriösen, von VMware gehosteten SQL Servern sollten Sie VMware gemäß dem Handbuch " Architecting SQL Server on VMware Best Practices" konfigurieren .
Es läuft wirklich darauf hinaus, dass eine Single-Core-VM immer nur einen Thread ausführen kann. Virtualisierung ist kein Patentrezept für diese Situation mit einem Kern pro Thread.
Die obigen Punkte berücksichtigen, dass Windows NT (die Codebasis von 1993, auf der alle modernen Windows-Versionen basieren) präventives Multitasking verwendet. Durch präventives Multitasking kann der O / S das Multitasking erzwingen, indem er die Kontextumschaltung nach regelmäßigen Zeitplänen erzwingt. Selbst bei präventivem Multitasking leidet ein Server mit einem einzelnen Kern immer noch unter einer sehr schlechten Leistung, wenn eine einzelne Aufgabe so viel CPU wie möglich verwendet, da das Betriebssystem dieser Aufgabe so viel CPU-Zeit wie möglich zur Verfügung stellt Während weiterhin Aufgaben mit höherer Priorität ausgeführt werden können, wird die CPU auf 100% gezwungen. Wenn SQL Server zu dem Zeitpunkt ausgeführt wird, an dem die CPU zu 100% ausgelastet ist, wird die CPU-Menge von SQL Server so weit reduziert, dass sie sehr auffällig wird. In den oben beschriebenen Szenarien habe ich dies nicht getanAngenommen, der Computer (oder sogar SQL Server) wird vollständig "gestoppt" oder "stirbt". das wäre einfach falsch. Die Maschine kann jedoch so beschäftigt sein, dass die Maschine in jeder Hinsicht unbrauchbar wird. Das Hinzufügen eines zweiten Kerns ist zwar kein Allheilmittel, verringert jedoch die Wahrscheinlichkeit, dass die Maschine nicht mehr reagiert. Jeder zusätzliche Kern bedeutet, dass ein anderer Thread zu 100% CPU ausgeführt werden kann, ohne dass der Computer unbrauchbar wird.