Mehrere vCPUs oder mehrere identische VMs, was ist besser?


7

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?


Wie Sie wahrscheinlich wissen, schlägt VMware die Verwendung von 1 vCPU pro VM vor, es sei denn, Sie verfügen über eine Software, die nicht nur Vorteile bringt, sondern auch mehrere CPUs nutzen kann.
Vick Vega

1
@ Vick, wo empfiehlt es das? sind das nicht alte Nachrichten?
Chopper3

Genau das wollte ich @Vick wissen. Soweit ich das beurteilen konnte, waren die Dokumente, die das sagten, Jahre alt.
Josh

1
@ Chopper3 - Seitenanfang 8 - vmware.com/pdf/exchange_best_practices.pdf (ja, es ist austauschspezifisch, wurde aber 2010 veröffentlicht.)
Clint

1
@ Chopper3 ♦, Im Internet wird viel über dieses Thema gesprochen, Dutzende Seiten mit White Papers und Diskussionen, die mit der Schlussfolgerung kommen, die ich angegeben habe. Suchen Sie in Google nach "empfohlene CPU pro VM". Es gibt viel Material darüber.
Vick Vega

Antworten:


7

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.


1
Auf jeden Fall ist es etwas zu testen. VMware empfiehlt jedoch weiterhin einzelne vCPUs gegenüber mehr, da der Hypervisor zwei kostenlose CPUs gleichzeitig planen muss, anstatt einen für die VM zu planen. Das schafft mehr Overhead.
Steven

1
Einverstanden über die Anzahl der vCPUs. Neuere ESX / ESXi-Versionen sind wesentlich skalierbarer geworden. Die vCPU pro physischem Kern ist von 8 (in 3.5) auf 25 (in 4.1) gestiegen. Nicht, dass es ratsam wäre, das Limit zu erreichen (der Kern, den Sie auf 25 verschiedene Arten aufteilen, ist immer noch nur ein Kern). Wenn Ihre CPU-Ressourcen nicht in Konflikt geraten, kann es sich definitiv lohnen, VMs unter höherer Last zusätzliche Rechenressourcen zur Verfügung zu stellen.
Shane Madden

@Steven - stimme absolut zu, es ist ein Balanceakt, denke ich. Sie müssen jeden Bedarf an Rohleistung gegen einen Verlust an Flexibilität abwägen, wenn Sie viele Gäste auf den Host setzen möchten.
Rob Moir

1
Ich habe diese Frage nur ein Jahr nach dem Wechsel noch einmal durchgesehen. VMWare ESXi führt in der Tat viele VMs mit mehreren vCPUs ohne Probleme aus . Wir haben uns für einen 32-Core-Host entschieden und haben mehrere VMs mit jeweils 2 und 4 vCPUs, die alle hervorragend laufen. Die verbesserte Leistung von ESXi gegenüber VMWare Server hat mich umgehauen. Keine Probleme mit ESXi, es funktioniert großartig.
Josh

4

Ich kann diese Frage auf verschiedene Arten angehen, aber ich beginne mit der horizontalen und vertikalen Skalierung.

Horizontale Skalierung

Vorteile

  • Kann sehr groß skalieren
  • Kann über Hosts skaliert werden (dh über einen VMware-Cluster)
  • Fehlertoleranz
  • Geringe / keine Ausfallzeit während der Wartung

Nachteile

  • Mehr Overhead durch VM-Betriebssysteme und Load Balancer
  • Mehr Wartung / Management (zB Patches, SSL-Zertifikate)
  • Mehr Verwaltung der Website-Version auf allen Webservern
  • Für die Website hinter Load Balancer sind möglicherweise zusätzliche Tests und Entwicklungen erforderlich
  • Lizenzierung?

Vertikale Skalierung

Vorteile

  • Skaliert einfacher (fügen Sie einfach eine oder zwei weitere vCPUs oder mehr Speicher hinzu)
  • Nur ein Webserver zum Verwalten, Lizenzieren usw.

Nachteile

  • Ausfallzeiten während Wartung / Upgrades
  • Eine zu große Skalierung kann zu Leistungsproblemen in einer VM führen.
  • Skaliert nicht wirklich.

Beide haben ihre Vor- und Nachteile, und ich bin ein großer Fan der horizontalen Skalierung, aber ich würde Ihnen Folgendes empfehlen:

  1. Skalieren Sie vertikal bis zu einem bestimmten Punkt (ich komme in einer Minute zu diesem bestimmten Punkt).
  2. Machen Sie Ihre Hausaufgaben darüber, was es Zeit und Geld kostet, horizontal in Gang zu kommen.
  3. Nehmen Sie sich genügend Zeit, um Ihre Lösung für die horizontale Skalierung zu testen.
  4. Wenn Sie den Punkt erreicht haben, an dem es Zeit ist, horizontal zu skalieren, können Sie Ihren vertikal skalierten Server zurückfahren, einige Klone erstellen, sie hinter Ihren bereits konfigurierten Load Balancer werfen und ihn rocken und rollen sehen.

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!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.