Ich habe einen physischen Server, auf dem eine Instanz von SQL Server ausgeführt wird.
Ich stelle fest, dass dieser Server ziemlich oft mit 100% CPU-Auslastung läuft.
Mein IT-Team ist darüber nicht erfreut und schlug vor, 2 der 32 Kerne für das Betriebssystem zu reservieren.
Dies funktioniert hervorragend, jetzt liegt die maximale Nutzungsspitze bei knapp 90%. Außerdem wird kein langsamer Datenabruf von verschiedenen Benutzern mehr gemeldet.
Gibt es einen Grund, WSRM (Windows System Resource Manager) NICHT auf diese Weise zu verwenden - anstelle von SQL Resource Governor?
sql-server
configuration
windows
resource-governor
ManInMoon
quelle
quelle
Antworten:
Gibt es einen Grund, den von Ihnen definierten Ansatz NICHT zu verwenden? Absolut.
Stellen Sie sich vor, Sie hätten ein Auto gekauft - ein Auto, bei dem der Motor überhitzt, wenn Sie 50 MPH erreichen. Wäre Ihre Reaktion auf diese Situation, das Auto künstlich auf 49 MPH zu begrenzen oder herauszufinden, was der Fehler am Motor ist?
Warum sollten Sie Ihr Auto auf 49 MPH beschränken? Der Hersteller gab an, dass es bis zu 80 MPH fahren könnte - Sie fahren Ihr Auto gerne schnell, um es auf diese Geschwindigkeit zu bringen -, wenn es dieses verdammte Überhitzungsproblem nicht gäbe.
Das Auto, das Sie gekauft haben, war auch sehr, sehr teuer. Jeder Motorzylinder muss maximal ausgelastet sein, damit Sie dieses Geld nicht verschwenden!
Durch die künstliche Einschränkung des Zugriffs von SQL Servern auf die CPU wird die Leistung beeinträchtigt. Möglicherweise haben Sie die Leistungsprobleme vorübergehend behoben, indem Sie sichergestellt haben, dass die CPU für das Betriebssystem verfügbar ist, aber Sie haben die eigentliche Frage nicht beantwortet: WARUM verwendet SQL Server 100% der CPU?
Mein Rat lautet wie folgt:
Finden Sie heraus, was das eigentliche Problem ist, und beheben Sie es. Vertuschen Sie das Problem nicht mit einem Kludge. Das Problem WILL wieder und schlagen Sie in dem Gesicht der ganzen Linie , wenn die Auslastung des Servers natürlich mit einem Wachstum erhöht.
Als vorübergehende Lösung kann der Resource Governor verwendet werden, um die verwendete CPU zu senken, bis Sie das echte Problem finden.
quelle
Erik Darling erwähnte den größten praktischen Grund für die Nichtverwendung von WSRM in einem Kommentar zu Ihrer Frage:
Wenn dies für Sie funktioniert, bleiben Sie dabei - wir sind alle beschäftigt, und Sie können nur so viel Zeit mit einem bestimmten Problem verbringen. Die ideale Lösung wäre, die zugrunde liegenden Abfragen / Probleme zu beheben, die die CPU so weit treiben, dass vom Benutzer wahrnehmbare Probleme auftreten (die George in seiner hervorragenden Antwort behandelt ).
Erik fährt fort zu sagen
Aus geschäftlicher Sicht ist dies wahrscheinlich der schlechteste Teil des WSRM-Geschäfts - Sie zahlen eine Lizenz pro Kern für zwei Kerne, die ausdrücklich nicht verwendet werden. Zum Zeitpunkt dieses Schreibens sind das noch $ 3k oder $ 14k auf dem Tisch (abhängig von Standard vs Enterprise).
quelle