Best Practices von VMware und SQL Server

In der langjährigen Arbeit mit SQL Servern und VMware haben wir immer wieder mit mehr oder weniger großen Problemen Bekanntschaft gemacht. Zur Problemlösung haben wir verschiedene Best Practices erarbeitet und möchten diese in diesem Artikel vorstellen.

PVSCSI Controller

Um die I/O-Leistung unserer SQL Server VM zu verbessern und den CPU-Overhead zu reduzieren verwenden wir statt einem SCSI oder LSI SAS Controller, den PVSCSI Controller. Die Verwendung der SCSI oder LSI SAS Controller sind in der Standardkonfiguration der Datenspeicher von VMDKs festgelegt. Jedoch kann der Wechsel auf einen PVSCSI-Controller deutliche Vorteile mit sich bringen, die zu einer Verbesserung der IO-Leistung und Verringerung der CPU-Auslastung führen.

Haben Sie separate VMDKs für OS/Data/logs/TempDB/Binaries erstellt, empfehlen wir 2 PVSCI-Adapter hinzuzufügen und die Data/Logs/TempDB auf diese gleichmäßig aufzuteilen. Die Betriebssystempartition sollte jedoch auf dem LSI SAS Controller weiterhin verbleiben.

Welchen Unterschied macht das Verhältnis zwischen Sockets und Cores innerhalb einer SQL Server VM?

Es passiert schnell, dass man den Überblick über alle VMs in SQL Server verliert. Dabei tritt ein gängiges Performanceproblem auf. Wenn Sie beispielsweise einen SQL Server mit 8 Kernen verwenden und je einen Kern pro Socket konfigurieren, nutzen Sie 8 Sockets in Summe. 4 mehr, als der SQL Server Standard eigentlich unterstützt. Wir empfehlen in diesem Fall das Verhältnis zwischen Kernen und Sockets entsprechend zu korrigieren, damit es zu keinen Leistungseinbrüchen kommt.

  • Übersteigen Sie nicht die Anzahl der Sockets Ihres Hosts
  • Halten Sie die Lizenzen auf einem Minimum und achten Sie auf die Lizenzbeschränkungen
  • Richten Sie die Kerne und Sockets auf Ihren entsprechend Host aus
  • Berücksichtigen Sie die CPU Leistung durch eine durchdachte Verteilung der Kerne auf Sockets

Sie haben zu viele Cores auf einer SQL Server VM?

Auch dieses Szenario ist nicht ungewöhnlich. Dabei stellt sich uns die Frage, ob es überhaupt möglich ist, zu viele Cores auf einer SQL Server VM laufen zu lassen? Ja, es ist möglich und der Ursprung liegt gar nicht mal so weit entfernt. Durch zu viele Gäste auf einem Host und gleichzeitig zu viel zugewiesener CPU aufgrund von Co-Stop & Ready-Time Waits können Leistungseinbrüche eintreten. Gleiches verhält sich mit der Zuweisung von zu vielen Cores auf einer SQL Server VM. Wir empfehlen sich nach und nach heranzutasten und zu eruieren, wie das perfekte Verhältnis zwischen Cores und Sockets innerhalb Ihrer SQL Server VM aussieht, ohne die Leistung signifikant zu beeinträchtigen. Hilfreich dabei können verschiedene VMware Monitoringtools sein, die die jeweilige Performance genau unter die Lupe nehmen.

Das Noisy Neighbour Prinzip

Wie wir mittlerweile schon festgestellt haben, ist es nicht unüblich, dass zu viele VMs auf einem SQL Server Host konfiguriert sind und es deutlich an Leistung mangelt. Auch hier bringen wir wieder die Monitoringtools ins Spiel und empfehlen die “noisy neighbours” zu prüfen – also das, was sich sonst noch auf Ihrem Host so befindet. Denn oftmals verlieren die Anwender auch hier den Überblick und packen sich ihre Hosts mit unheimlich vielen Anwendungen und VMs voll. Das das zu einem Leistungseinbruch führt, steht außer Frage. Daher empfehlen wir Ihnen gerade geschäftskritische Daten und Anwendungen nicht auf überfüllten Hosts zu verwenden.

Viel Leistung braucht auch viel Power

Auch hier sollte eigentlich klar sein, wenn man seine SQL Server auf einem hohen Performance-Level verwenden möchte, sollte man entsprechende Konfigurationen und Vorkehrungen treffen, damit dies auch zum Tragen kommt. Daher empfehlen wir an diesem Punkt, Ihr Windows Betriebssystem und ESXi auf High Performance und nicht im balanced Modus auszuführen.

Fazit

Es gibt durchaus unzählige Tipps & Tricks, wie man mit der optimalen Konfiguration an VMs in SQL Server umgehen sollte. Wir haben jedoch gemerkt, dass wir mit den oben beschriebenen Schritten, einem gut funktionierenden VM Monitoringtool und einer aktuellen geupdateten Hardwareversion am Besten gefahren sind. Um es in Zahlen auszudrücken: Knapp 10 – 15% Leistungssteigerung durch PVSCSI, 5-10% durch Energiesparen und knapp 10% durch die richtige Dimensionierung der Anzahl unserer Cores und Sockets.