Ich möchte einen unserer Server aktualisieren, einen 8-Core-Server, auf dem VMware Server 2 ausgeführt wird. Bei den VMs handelt es sich hauptsächlich um Web-, Datei- und E-Mail-Server. Insbesondere werden drei Webserver, zwei E-Mail- / Dateiserver und einige Jabber / XMPP-Server ausgeführt.
Als wir diesen Computer ursprünglich eingerichtet haben, hatten wir die beiden Webserver mit zwei vCPUs konfiguriert. Wir hatten einige sehr schwerwiegende Leistungsprobleme . Zu diesem Zeitpunkt liefen nur 3 VMs mit insgesamt 5 vCPUs. Wir haben auch VMware Server 1 und ein RAID1 ausgeführt . Wir haben jetzt ein Upgrade auf ein RAID10 durchgeführt und ich würde nie weniger in Betracht ziehen! :-)
Auf dem neuen Server wird VMware ESXi anstelle von VMware Server installiert. Wir sehen uns entweder eine andere 8-Core-Maschine mit schnelleren Prozessoren oder einen 16- oder 32-Core-Server an. Ich möchte sicherstellen, dass ich die Probleme vermeide, die wir zuvor hatten.
Da ich zuvor solche Probleme mit mehreren vCPUs hatte, war mein Plan, die primäre Webserver-VM durch mehrere identische Webserver-VMs (2 - 4) mit jeweils einer einzelnen vCPU zu ersetzen, die Inhalte von einer NFS-Freigabe bereitstellen, und diese in eine Last zu legen ausgeglichene Konfiguration. Ich würde also im Grunde eine VM durch mindestens 4: 2 kleine Webserver-VMs, eine Dateiserver-VM und eine Lastausgleichs-VM ersetzen. Mein Plan hier ist zweierlei: Erstens kann ich mehrere vCPU-Isusen vermeiden, die ich zuvor gesehen habe, und zweitens kann ich neue Webserver-VMs erzeugen, um die erhöhte Last zu bewältigen.
Beachten Sie, dass ich verstehe, dass ich nicht alle Vorteile des Lastausgleichs nutzen kann, da ich immer noch einen einzigen Fehlerpunkt habe .
Ist das ein guter Plan oder ist er unnötig? Kann VMware ESXi mehrere vCPUs besser verarbeiten als VMware Server 1 vor über drei Jahren? Welche Leistung ist besser, eine einzelne große Webserver-VM mit 2 bis 4 vCPUs oder 4 VMs mit einer einzelnen vCPU in einer Konfiguration mit Lastenausgleich?
Antworten:
Kann VMware ESXi mehrere vCPUs besser verarbeiten als VMware Server 1 vor über drei Jahren?
Ja, es handelt sich um völlig separate Produktlinien, und ESXi kann mehrere vCPUs sehr gut verarbeiten. Ich führe gerade eine 5-Knoten-VMware-Farm mit einer Mischung von Maschinen auf jeder Box aus, jede mit 1, 2 und in einigen Fällen 4 Prozessoren nach Bedarf, und es funktioniert in der Tat sehr gut.
Welche ist besser geeignet, eine einzelne große Webserver-VM mit 2 bis 4 vCPUs oder 4 VMs mit einer einzelnen vCPU in einer Konfiguration mit Lastenausgleich?
Dies ist weniger eine VMWare-Frage als vielmehr eine Frage zum Testen von Anwendungen / Websites. VMWare (oder jede andere moderne virtuelle Bare-Metal-Maschine) kann beides tun - es kann Kosten verursachen, wenn viele vCPUs an einen Gast angeschlossen sind, dies kann jedoch durch die Ressourcenkosten für die Ausführung mehrerer Gäste und durch Leistungsprobleme (oder) ausgeglichen werden Verbesserungen, was Ihre Webanwendung möglicherweise durch einen verteilten Ansatz realisiert.
In dieser letzten Ausgabe geht es eigentlich eher um Tests und Architekturpräferenzen als um den einen wahren Weg, aber ich bin der Meinung, dass es besser ist, ein paar kleinere virtuelle Maschinen zu erstellen, wenn Sie die Anwendung einfach auf mehr als eine virtuelle Maschine verteilen können als ein großer. Bietet Ihnen mehr Flexibilität und hilft auf lange Sicht bei der Leistung, da Sie Dinge bewegen können, wenn Sie müssen. Mit anderen Worten, eher nach außen als nach oben skalieren
Ich denke, wir denken bei physischen Maschinen daran, nach oben zu skalieren und so viel wie möglich in eine Betriebssysteminstanz zu integrieren, um die Kosten für die Lizenz und die Hardware optimal zu nutzen. Bei virtuellen Maschinen ändern sich diese Gleichungen jedoch ein wenig - wenn Sie Wenn Sie mehr als eine virtuelle Betriebssysteminstanz zum Preis einer Lizenz erhalten, ändert sich möglicherweise die Art und Weise, wie Ihre Serverinfrastruktur entworfen wird.
bearbeiten
http://blog.peacon.co.uk/understanding-the-vcpu/ ist ein Artikel, den ich bei der Erörterung dieser Frage im Chat erwähnt habe und der ausführlich erklärt, warum es wichtig ist, beim Erstellen Ihrer VMs über die vCPU-Zuweisung nachzudenken.
quelle
Ich kann diese Frage auf verschiedene Arten angehen, aber ich beginne mit der horizontalen und vertikalen Skalierung.
Horizontale Skalierung
Vertikale Skalierung
Beide haben ihre Vor- und Nachteile, und ich bin ein großer Fan der horizontalen Skalierung, aber ich würde Ihnen Folgendes empfehlen:
Okay, was ist dieser bestimmte vertikale Skalierungspunkt?
Das hängt von Ihrer Hardware ab.
VMware hat seit ESX 2.x viel zur vCPU-Planung beigetragen, und es gibt mehr Raum für vertikales Wachstum. Wie viel hängt wirklich von den CPUs ab, die Sie erhalten.
Die Dimensionierung von VMs für die Leistung erfordert heutzutage Kenntnisse über NUMA (Non-Uniform Memory Access) . Grundsätzlich möchten Sie nicht, dass eine VM größer als der NUMA-Knoten Ihrer CPU ist. Hier finden Sie einige Links, die Sie in diesem Bereich unterstützen:
http://frankdenneman.nl/2010/02/sizing-vms-and-numa-nodes/
http://frankdenneman.nl/2010/09/esx-4-1-numa-scheduling/
http://frankdenneman.nl/2011/01/amd-magny-cours-and-esx/
Ich denke, ich werde es abschließen, indem ich sage, dass die CPU für mich nie ein zu großes Problem war, es sei denn, Sie haben die CPU auf Ihrem Host überzeichnet. Stattdessen ist normalerweise die Erinnerung der Schuldige. Das Aufblähen / Austauschen des Speichers ist ein sehr auffälliges Leistungsproblem.
Viel Glück!
quelle