Meines Wissens nach besteht einer der großen Vorteile der Verwendung einer VM darin, dass Sie Ressourcen zwischen den virtuellen Maschinen auf einem Host gemeinsam nutzen können. Sie können also einen Host mit 120 CPUs haben und 5 VMs mit jeweils 32 CPUs darauf platzieren. Die zusätzlichen CPUs werden zwischen den VMs "gemeinsam genutzt", wobei der Host die CPUs je nach Bedarf dynamisch zuweist. Gleiches gilt für den Speicher.
Ich habe auch verstanden, dass dies ein großes No-No für VMs ist, auf denen SQL Server installiert sind, aber meine VM-Administratoren sind anderer Meinung. Hat jemand irgendwelche Beweise oder Unterlagen auf die eine oder andere Weise?
Ich weiß nicht, ob es wichtig ist, aber wir verwenden VMWare.
sql-server
virtualisation
vmware
Kenneth Fisher
quelle
quelle
could
geteilt werden soll. Als ich die Frage stellte, stellte ich fest, dass es für CPUs und Speicher sehr unterschiedlich sein könnte, aber dass beide eine Option waren.Antworten:
Sie fragen: "Ist es in Ordnung, wenn wir CPUs überbeanspruchen?"
Es ist in Ordnung, bis Sie Leistungsengpässe feststellen, die mit dem CPU-Verbrauch zusammenhängen. Die gleiche Antwort gilt auch für die Überlastung des Netzwerks - es ist nicht so, als würden Sie 5 separate 10-Gbit-Ethernet-Karten in den Host einlegen und eine Karte pro VM reservieren. Bei der Virtualisierung geht es um Überbindung und darum, die Grenze zwischen Ressourcenverfügbarkeit und Ressourcenanforderungen zu überschreiten.
Im Allgemeinen möchten Sie den Speicher jedoch nicht überbeanspruchen, da SQL Server den von Ihnen bereitgestellten Speicher aktiv verwendet. Anstatt die VMs-Seite auf der Festplatte des Hosts zu belassen, sollten Sie eine VM-für-VM-Analyse durchführen, um herauszufinden, welche VMs mit weniger Arbeitsspeicher leben könnten, und sie zunächst mit weniger Arbeitsspeicher konfigurieren.
quelle
Das Problem bei der dynamischen Zuweisung einiger Ressourcen besteht darin, dass dies zu einer unvorhersehbaren Leistung führt. Die Berichtsabfrage x hatte gestern 32 CPUs zur Verfügung und lief in 4 Minuten. Heute hat sie nur noch 24 und es hat erheblich länger gedauert. Sie können auch die Latenz sehen, wenn der Gast darauf wartet, dass andere Kerne verfügbar werden.
Jonathan Kehayias gibt hier einige praktische Warnungen vor einer Überbelegung von CPU und Speicher (und ehrlich gesagt vertraue ich seiner Erfahrung und seinem Rat mehr als einem typischen VM-Administrator, was sie nicht beleidigt, aber ich vermute, dass er viel direktere Erfahrung mit der Kombination hat):
quelle
Meines Wissens nach ist ein gewisses Maß an CPU-Überbeanspruchung möglicherweise in Ordnung, dies hängt jedoch vollständig von den Workload-Anforderungen aller Gäste ab. In David Klees Blog finden Sie viele gute VM-Informationen. Insbesondere http://www.davidklee.net/articles/sql-server-articles/cpu-overcommitment-and-its-impact-on-sql-server-performance-on-vmware/ zur Erklärung der CPU-Überbindung und ihrer Auswirkungen auf SQL Server.
Eine Überbelegung des Speichers ist ein völlig anderes Thema, und im Allgemeinen sollte der VM-Host nicht überlastet werden, wenn SQL Server ausgeführt werden. Ich werde noch einmal David Klee als Referenz verwenden. http://www.davidklee.net/2013/11/04/lock-pages-in-memory-in-sql-server-on-vmware-why-or-why-not/ wo er die Auswirkungen des Gedächtnisses erklärt -Engagement.
Hoffe das hilft.
quelle