
Wir haben ein Leistungsproblem mit unserer VMWare-Umgebung, das wir uns nicht erklären können, und ich hoffe, dass uns hier jemand helfen kann. Wir haben eine Webanwendung, die ein Datenbank-Backend verwendet. Wir haben ein SQL 2005-Cluster-Setup unter Windows 2003 R2 zwischen einem physischen und einem virtuellen Knoten. Beide physischen Server sind identische 2950er mit 2x Xeaon x5460 Quad Core-CPUs und 64 GB Arbeitsspeicher, von denen 16 GB dem Betriebssystem zugewiesen sind. Wir verwenden ein iSCSI-SAN für alle Cluster-Festplatten. Das Problem ist, dass bei wiederholter Verwendung der Anwendung unter Stresstests, bei denen den Clusterknoten CPUs hinzugefügt werden, der physische Knoten von 1 pCPU auf 8 pCPUs skaliert, was bedeutet, dass wir kontinuierliche Leistungssteigerungen feststellen. Beim Testen des Knotens, auf dem Vsphere läuft, haben wir die erwarteten 12 % Leistungseinbußen, da er virtuell ist, aber wir skalieren immer noch von 1 vCPU auf 4 vCPUs wie beim physischen Knoten, aber darüber hinaus sinkt die Leistung, und wenn wir 8 vCPUs erreichen, sehen wir schlechtere Leistungszahlen als bei 4 vCPUs. Auch hier sind beide Knoten in Bezug auf Hardware, Gastbetriebssystem, SQL-Konfigurationen usw. identisch konfiguriert und es gibt keinen anderen Datenverkehr als den Test auf dem System. Es gibt keine anderen VMs auf dem virtuellen Server, also sollte es keinen Wettbewerb um Ressourcen geben. Wir haben VMWare um Hilfe gebeten, aber sie haben uns nicht wirklich Dinge wie das Einstellen der SQL-Prozessoraffinität vorgeschlagen, was zwar hilfreich wäre, aber auf jeder Box den gleichen Nettoeffekt hätte und unsere Ergebnisse nicht im Geringsten ändern sollte. Wir haben uns alle SQL-Tuning-Anleitungen von VMWare in Bezug auf VSphere angesehen, ohne Erfolg, bitte helfen Sie!
Antwort1
Ich zögere, dies als Antwort einzugeben, da ich nicht viel konkrete Unterstützung dafür habe, aber es könnte die Ursache des Problems sein, das Sie sehen. Ich habe schon einmal gehört (undDasSeite unterstützt dies irgendwie), dass die CPU-Planung von VMWare schwieriger wird, wenn eine VM mehrere CPUs hat. Für eine VM mit einer einzigen CPU muss nur ein einziger Hostprozessor geplant werden. Wenn eine VM jedoch mehr als einen hat, muss VMWare mehrere Prozessoren planen, damit sie für die VM verfügbar sind, was länger dauern kann. Dies würde mit zunehmender Anzahl der VM-CPUs immer schwieriger zu planen sein, was bedeutet, dass die VM tatsächlich eine schlechtere Leistung erfährt, weil es schwieriger wird, ihr Prozessorzeit zuzuweisen.
Außerdem habe ich Ihren letzten Kommentar noch einmal gelesen und hatte in letzter Zeit auch Probleme mit Konflikten in vSphere. Eine andere Sache, die Sie vielleicht versuchen möchten (falls Sie das nicht bereits getan haben), ist, die Ressourcenzuweisung für diese VM zu erhöhen, auch wenn es im Moment die einzige VM dort ist.
Antwort2
Da hast Du ja ein ganz schönes Setup ;-)
Sind die vCPUs bis zur maximalen Kapazität ausgelastet? Was sagen Ihnen die Diagramme für CPU-Wartezeit, CPU-Bereitschaft und CPU-Auslastung?
Je mehr vCPUs Sie einer VM hinzufügen, desto mehr Overhead entsteht auf dem Hostsystem, um die vCPUs zu verwalten und sie der physischen zuzuordnen. Ab einem bestimmten Punkt können Sie die Leistung einer VM nicht mehr steigern, indem Sie einfach mehr vCPUs hinzufügen.
Haben Sie überprüft, ob es ein Leistungsproblem beim iSCSI-SAN gibt? Überprüfen Sie die Diagramme zu den Lese- und Schreibanforderungen der Festplatte und natürlich zu den Lese- und Schreibraten der Festplatte und vergleichen Sie diese mit denen des physischen Clustermitglieds.
Vielleicht können Ihnen einige der Werte die richtige Richtung weisen.
Antwort3
Nur zur Klarstellung: Sie verwenden eine 8-Core-ESX-Box (2 x 4), um eine einzelne 8-vCPU-VM zu hosten, und sehen keinen echten Leistungsgewinn für die 5. und die folgenden vCPUs, richtig? Darf ich fragen, warum Sie nicht stattdessen denselben Host als physische SQL-Box verwenden? Sie haben dort Enterprise Plus-Lizenzen im Wert von ~5.000 bis 6.000 US-Dollar verwendet, ohne dass Ihnen etwas davon nützt (selbst wenn Sie keine Leistungsprobleme hatten) – das verstehe ich leider nicht.