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.
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.
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.
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.
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.
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.
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.
Kontaktieren Sie uns gerne über das
Kontaktformular und vereinbaren ein unverbindliches
Beratungsgespräch mit unseren Berater:innen zur
Bedarfsevaluierung. Gemeinsam optimieren wir Ihre
Umgebung und steigern Ihre Performance!
Wir freuen uns auf Ihre Kontaktaufnahme!