Wann muss ein virtualisierter Server auf einen physischen Server verschoben werden?

12

Virtualisierung hat einige große Vorteile, aber es gibt Zeiten, in denen ein virtualisierter Server mehr Leistung benötigt und auf physisch umgestellt werden sollte.

Meine Frage ist, wie erfährst du, wann diese Zeiten sind? Ich suche nach messbaren Daten und Metriken, die zeigen, dass das Verschieben eines Servers in eine eigene physische Box einen signifikanten Unterschied für die Leistung bedeuten würde. Ich persönlich interessiere mich für Windows, aber vermutlich sind die Grundlagen auf allen Plattformen gleich.

Alex Angas
quelle

Antworten:

3

Der eine Fall, in dem ich ein V2P durchführen musste, betraf eine MS SQL-Box, die auf zwei 3,2-GHz-Dual-Core-CPUs (Gesamt-CPU 14,4 GHz) lief, die wir auf einen ESX 2.5-Cluster migrierten, in dem die zugrunde liegende Hardware neuer und leistungsfähiger war langsamere (2,4 GHz IIRC) Kerne. Wenn man den Overhead von ~ 10% hinzufügt, selbst mit 4 vCPUs, könnte diese VM immer nur eine effektive 8-8,5-GHz-Gesamt-CPU bekommen. Vor der Migration lag die maximale CPU-Auslastung bei 60% und nach der Migration bei 90% bis 100%. Der Kunde wünschte sich Headroom, sodass wir wieder physisch arbeiteten. Um Ihre Frage genau zu beantworten, haben wir festgestellt, dass die Box in Perfmon und im VI-Client auf der ganzen Linie mit 100% CPU lief. Eine bessere Lösung (aus meiner Sicht) wäre ein Upgrade auf schnellere CPUs gewesen, aber es gibt Randfälle wie diesen, bei denen das nicht wirtschaftlich ist, insbesondere mit dem Trend zu langsameren CPUs.

Mit ESX 4 konnten wir eine solche Box auf bis zu 8 vCPUs erhöhen, aber das war zu diesem Zeitpunkt keine Option.

Auf der Suche nach Leistungsobergrenzen, die möglicherweise darauf hinweisen, dass Sie Ihre VM aufgeben müssen, sollte die Kombination aus Perfmon und dem VI-Client mehr als die Aufgabe erfüllen, selbst leistungsbeschränkte VMs zu finden . Fügen Sie dem nach Möglichkeit einige SAN-Analysen hinzu, aber wenn das SAN ein Problem aufweist, ist es mit ziemlicher Sicherheit genauso gut, den Speicher zu überarbeiten, um die Volumes zu isolieren und / oder zu verbessern, auf denen die virtuellen Laufwerke der VM gespeichert sind. Gleiches gilt für alle anderen OS / Hypervisor-Kombinationen - holen Sie sich die internen Statistiken, die Sie verwenden können, aber korrelieren Sie sie mit der Ansicht des Hypervisors, was gerade vor sich geht, da 100% CPU, die beispielsweise in einer VM gemeldet wird, nicht unbedingt bedeuten muss, dass der Hypervisor niemals liefern kann mehr Leistung,

Helvick
quelle
4

Ich bin nicht einverstanden, dass ein virtueller Server aus Gründen der Leistung auf physisch verschoben werden muss. Hypervisoren sind jetzt so nah am Metall, dass es praktisch keine Leistungseinbußen gibt (Wortspiel beabsichtigt). Besonders jetzt, wo viele Board-Hersteller Hypervisoren in den Chipsatz aufnehmen. Wenn Sie zwei Server mit identischer Hardware verwenden, von denen einer einen einzelnen Gast und einer eine exakte Kopie dieses Gasts auf der physischen Hardware ausführt, werden Sie meines Erachtens kaum einen Leistungsunterschied bemerken.

Es gibt jedoch auch andere Gründe, weshalb Sie möglicherweise einen physischen Server anstelle eines virtuellen benötigen. Eine davon ist die Hardwarekompatibilität. Wenn für Ihre Anwendung nicht standardmäßige Hardware mit einem eigenen eindeutigen Bus erforderlich ist, können Sie diese möglicherweise nicht in einer virtuellen Maschine ausführen.

Ich bin gespannt, was andere zu sagen haben. Gute Frage.

ANMERKUNG: Wir haben Server, die virtualisiert und dann auf die gleiche Hardware zurückgesetzt wurden, um über die von uns geliebten Snapshot- / VMotion-Funktionen zu verfügen.

Daniel Lucas
quelle
3

Ich bin kein Experte auf diesem Gebiet, aber im Allgemeinen: Sehr hungrige E / A-Anwendungen (insbesondere solche, die wenig und schnell schreiben) sind diejenigen, die ihren eigenen physischen Server erhalten.

Es ist auch nicht sehr schwer, sie zu finden. Sie müssen nur die Leistungsüberwachung ausführen und nach langen Wartezeiten suchen.

High-End-Datenbanken erhalten aus mehreren Gründen normalerweise einen eigenen dedizierten Server:

  1. Sie möchten alles zwischenspeichern, was sie können. Die RAM-Auslastung ist enorm
  2. Sie bieten eine bessere Leistung beim Threading über mehrere Kerne (8-Wege-Threading ist normal), und Sie möchten im Allgemeinen aufgrund von Blockierungen keinem Server mehr als eine virtuelle CPU zuweisen
  3. Sie sind sehr E / A-hungrig, wenn Daten in den Cache geladen werden. Eine niedrige Latenz bei E / A ist der Schlüssel.
pauska
quelle
1
Ich werde mit dem "normalerweise" Kommentar nicht einverstanden sein. Überall auf der VMWare-Site gibt es Artikel zum Einrichten von Datenbankservern unter VMWare, und ich glaube nicht, dass dies ein Problem darstellt. Sie machen jedoch wichtige Aussagen darüber, was evaluiert werden muss, wenn Sie den Umzug auf einen virtualisierten Server in Betracht ziehen.
SpaceManSpiff
1
In Kürze werden wir unsere vier Datenbankserver virtualisieren, da die Vorteile von Snapshots / vmotion / etc. Ich bin mit LEAT einverstanden, dass Datenbankserver virtualisiert werden.
Daniel Lucas
Ich denke du hast mich falsch verstanden. Ich sage nicht, dass Datenbankserver nicht virtualisiert werden sollten (alle meine Datenbanken sind). Ich sagte, dass High-End-Server normalerweise auf separaten physischen Servern bleiben, da dies Einschränkungen mit sich bringt (zum Beispiel, dass nur 4 virtuelle CPUs verfügbar sind).
Pause
Hungrige I / O-Apps werden jedoch wahrscheinlich auf ein SAN stoßen, was bedeutet, dass Sie wieder mit Fibrechannel- oder Infiniband-Geschwindigkeit arbeiten und keine Raw-Festplatte unter der VM - ich habe (persönlich) keine App gesehen, die dies benötigt auf physischer Hardware zu sein, außerhalb von zeitkritischen Systemen, oder wo es offiziell vom Anbieter nicht unterstützt wird
warren
Ich habe das Gefühl, dass die Leute mich streiten, um zu streiten. Ich habe nicht gesagt, dass es einen physischen Host braucht . Ich sagte, dass extrem ressourcenintensive Anwendungen / Nutzungen normalerweise einen eigenen dedizierten Server erhalten, um andere VMs nicht zu blockieren.
Pause
1

Dies hängt sehr stark von dem Dienst ab, den dieser ausführt.

Normalerweise schaue ich mir die verwendeten Ressourcen an und stelle fest, ob sie tatsächlich Engpässe für diesen Gast und die von ihm angebotenen Services darstellen.

Dies davon auf diese Weise:

Wenn Sie einen Dual Core (2vSMP), 4 GB RAM-Gast mit einem Webserver (IIS) haben und die CPU- und RAM-Anforderungen nicht ausreizen, benötigt der Gast möglicherweise keine weitere Hardware.

Wir haben Fälle erlebt, in denen das Ausführen einer Oracle-Datenbank auf einer Virtualisierungsplattform in etwa der Leistung eines ähnlich großen Hardwareservers entspricht.

Wenn Sie einen 16-Core-Server als VM haben möchten, können Sie offensichtlich Probleme damit haben, die Leistung und die dedizierte Hardware zu sehen.

Mike Fiedler
quelle
1

Wenn auf der VM ein Mangel an Ressourcen besteht (oder auf anderen VMs ein Mangel an Ressourcen besteht), z. B .:

  1. Wenn die E / A der VM nicht über den Host befriedigt werden kann
  2. Wenn die VM mehr Netzwerkbandbreite benötigt, als es möglich ist, den Trunk gemeinsam zu nutzen
  3. Wenn die Prozesse der VM mehr CPU benötigen, als sie bekommen kann, z. B. wenn es einen einzelnen Prozess gibt, der eine virtuelle CPU maximal nutzt
  4. Wenn sein Linux und es sehr genaue Zeit benötigt (wenn es auf einem VMware-Host ausgeführt wird, können Linux-Hosts unter VMware-Drift-Zeit ausgeführt werden. Dies kann durch die Verwendung von ntp verringert werden. Für Apps, die sehr genaue Zeit benötigen, z. B. Kerberos, können Sie jedoch echte Hardware in Betracht ziehen.)
  5. Wenn sein Linux und braucht sehr zuverlässige Festplatte (wenn es auf einem VMware-Host ausgeführt wird - VMware hatte und ich glaube immer noch SCSI-Probleme unter VMWare unter bestimmten Bedingungen. Ein Fix wurde herausgegeben, aber es tritt immer noch auf, obwohl viel seltener)
Jason Tan
quelle
0

Ich würde sagen, es ist, wenn der Server an dem Punkt ist, an dem er genug Serverressourcen verbraucht, so dass er die Hardware nicht gemeinsam nutzen kann.

ESX, ESXi und Windows Hyper V sollten Ihnen nahezu echte Leistung bieten. Solange eine der Maschinen nicht 90% der Ressourcen alleine verbraucht, sollten Sie nicht auf echte Hardware umsteigen müssen.

Ausnahmen sind, dass Sie nicht möchten, dass sich Ihre 2 Domänencontroller auf derselben Box befinden, falls die Hardware ausfällt.

SpaceManSpiff
quelle
2
Ich würde auch hier nicht zustimmen. Zwar sind die Kosten für den Betrieb einer einzelnen VM auf einem einzelnen Host angesichts der Lizenzkosten usw. hoch. In Bezug auf Disaster Recovery und Hardwarefailover ergeben sich deutliche Vorteile. Ich denke, auch in diesem Fall lohnt es sich zu virtualisieren.
Kevin Kuphal
1
Sie sind ganz richtig. Wenn EXSi jetzt kostenlos ist, kann man einen einzelnen Server, z. B. Ihren Exchange-Server, virtualisieren und auf einem eigenen Computer installieren. Wenn es Zeit ist, die Hardware zu aktualisieren, kopieren Sie einfach die VM auf den neuen Computer.
SpaceManSpiff
0

Ich bezweifle, dass es eine generische Antwort darauf gibt, aber wenn Sie sich Sorgen um die Leistung machen, müssen Sie sich diese ansehen. Die offensichtliche wäre zu überprüfen, ob Sie die CPU, I / O, ...

Aber auch Leistungstests und Benchmarks helfen Ihnen bei der Entscheidung, ob es einen Nachteil gibt, wenn Sie virtuell sind und ob es sinnvoll ist, eine einzelne VM auf dem Host zu haben oder nicht.

Toto
quelle
0

Sie müssen zuerst feststellen, welche Ressource der Engpass ist.

Der Windows- Systemmonitor ( perfmon ) bietet zahlreiche Leistungsindikatoren für verschiedene Aspekte, wie z. B. Datenträgerwarteschlange, virtuelle Speicherstatistik usw.

Wenn Sie festplattengebunden sind, kann es sehr hilfreich sein, der virtuellen Maschine direkten Zugriff auf eine Festplatte anstelle einer VMX-Datei mit VMWare zu gewähren.

Kyle Brandt
quelle
0

Ich denke, dass alles von zwei Faktoren abhängt:

  • Ressourcenteilung: Verbraucht der Gast so viel Ressourcen, dass die Leistung des anderen beeinträchtigt wird
  • Sicherheit: Wenn es sich um einen sehr wichtigen Dienst handelt, sollten Sie die Virtualisierung wahrscheinlich nicht verwenden, da Sie umso weniger sicher sind, je mehr Ebenen zwischen Software und Hardware hinzugefügt werden.

    nur meine 2cts.

  • Maxwell
    quelle