Ist die virtuelle Maschine langsamer als die zugrunde liegende physische Maschine?


50

Diese Frage ist recht allgemein, aber insbesondere interessiert mich, ob eine virtuelle Maschine, auf der Ubuntu Enterprise Cloud ausgeführt wird, langsamer ist als dieselbe physische Maschine ohne Virtualisierung. Wie viel (1%, 5%, 10%)?

Hat jemand den Leistungsunterschied des Webservers oder des Datenbankservers (virtuell vs. physisch) gemessen?

Wenn es von der Konfiguration abhängt, stellen wir uns zwei Quad-Core-Prozessoren, 12 GB Arbeitsspeicher und eine Reihe von SSD-Festplatten vor, auf denen ein 64-Bit-Ubuntu Enterprise-Server ausgeführt wird. Darüber hinaus darf nur eine virtuelle Maschine alle verfügbaren Ressourcen nutzen.


1
Ubuntu Entreprise Cloud basiert auf KVM und nicht auf Xen.
Antoine Benkemoun

1
Antoine, Sie haben Recht - "Die Kern-Virtualisierungsstrategie war schon immer KVM-basiert, obwohl mit der Entwicklung von lib-virt die Verwaltung von KVM- und Xen-Hosts vereinheitlicht wurde." - Ich werde die Erwähnung über Xen herausarbeiten.
Michal Illich

Antworten:


31

Die typische Erfahrung für eine allgemeine Serverauslastung auf einem Bare-Metal-Hypervisor vom Typ 1 beträgt etwa 1-5% des CPU-Overheads und 5-10% des Arbeitsspeicher-Overheads, wobei der zusätzliche Overhead von der gesamten E / A-Auslastung abhängt. Dies ist meiner Erfahrung nach ziemlich konsistent für moderne Gastbetriebssysteme, die unter VMware ESX \ ESXi, Microsoft Hyper-V und Xen ausgeführt werden und deren zugrunde liegende Hardware entsprechend ausgelegt wurde. Für 64-Bit-Server-Betriebssysteme, die auf Hardware ausgeführt werden, die die aktuellsten CPU-Hardware-Virtualisierungserweiterungen unterstützt, würde ich erwarten, dass alle Hypervisoren des Typs 1 auf diese 1% -Overhead-Zahl zusteuern. Die Reife von KVM ist zu diesem Zeitpunkt noch nicht ganz Xen (oder VMware) gewachsen, aber ich sehe keinen Grund zu der Annahme, dass es für das von Ihnen beschriebene Beispiel merklich schlechter als diese wäre.

In bestimmten Anwendungsfällen kann die Gesamtleistung einer virtuellen Umgebung jedoch die Bare-Metal-Leistung einzelner Server überschreiten. Hier ist ein Beispiel für eine Diskussion darüber, wie eine VMware Clustered-Implementierung schneller, besser und billiger als ein Bare-Metal-Oracle-RAC sein kann. Die Speicherverwaltungstechniken von VMware (insbesondere die transparente gemeinsame Nutzung von Seiten) können den Arbeitsspeicher fast vollständig reduzieren, wenn Sie über genügend VMs verfügen, die ähnlich genug sind. In all diesen Fällen ist es wichtig, dass die Performance- und Effizienzvorteile, die die Virtualisierung bieten kann, nur realisiert werden, wenn Sie mehrere VMs auf Hosts konsolidieren. Ihr Beispiel (1 VM auf dem Host) ist in gewissem Maße immer langsamer als Bare-Metal .

Während dies alles nützlich ist, konzentrieren sich die eigentlichen Probleme in Bezug auf die Servervirtualisierung in der Regel auf die Verwaltung, Hochverfügbarkeitstechniken und Skalierbarkeit. Ein CPU-Leistungsspielraum von 2-5% ist nicht so wichtig, als dass eine effiziente Skalierung auf 20, 40 oder so viele VMs möglich wäre, wie Sie auf jedem Host benötigen. Sie können den Leistungseinbruch bewältigen, indem Sie eine etwas schnellere CPU als Basis auswählen oder mehr Knoten in Ihren Clustern hinzufügen. Wenn der Host die Anzahl der VMs, die er ausführen kann, nicht skalieren kann oder die Umgebung schwierig zu verwalten ist oder ist Aus Sicht der Servervirtualisierung ist es dann unzuverlässig.


7
Sie verwenden veraltete Technologien - insbesondere der Arbeitsspeicheraufwand von 5% bis 10% ist alte Hardware. Die neueren Hardware-Chips haben einen Overhead von etwa 2% bis 3%, wenn der Hyper-Visor dies unterstützt - und wir sprechen davon, dass Dinge, die ein Jahr alt sind, neu sind. Bis dahin haben AMD und Intel ihre API für die Hyper-Visor-Speicherzuordnung verbessert. Wie Sie später sagten, erwiesen sie sich als ziemlich transparent (1% Ziel). +1 für den Hinweis auf die tatsächlichen Vorteile.
TomTom

1
Ich habe die 5-10% basierend auf dem, was ich mit VMware gesehen habe, und es basiert auf dem Pre-EPT \ RVI-Kit. Es ist sinnvoll, dass die verbesserte hardwarebasierte Verwaltung des virtuellen Speichers in den neuesten CPUs den RAM-Overhead reduzieren würde
Helvick,

was transparente seitenfreigabe angeht, ist es mies, wenn sie große speicherseiten haben, die von allen neuen cpus unterstützt werden. In diesem Fall erhalten Sie im Wesentlichen nichts.
Tony Roth

1
@ Tony, das ist nur wahr, wenn Sie nicht überlastet sind - wenn Sie es sind, wird ESX \ ESXi 4 kleine Seiten verwenden, und TPS wird einspringen funktioniert wie angekündigt, ist jedoch ein vernünftiger Ansatz, der ein Über-Commit ermöglichen sollte, wenn dies unbedingt erforderlich ist, ohne dass die Leistung beeinträchtigt wird, wenn dies nicht der Fall ist. Siehe kb.vmware.com/selfservice/microsites/…
Helvick

1
@Helvick, wenn Sie win7 oder w2k8r2 Gast TPS ausführen, funktioniert nicht viel, da der Gast aggressiv Dinge vorab zwischenspeichert.
Tony Roth

23

"Leistung" hat viele Aspekte. Die n00bs messen die Startzeit eines Betriebssystems und sagen, dass z. B. Windows 2012 sooooooo großartig ist, weil es in 12 Sekunden auf echtem HD, möglicherweise 1 Sekunde auf SSD, startet.
Aber diese Art von Maßnahme ist nicht sehr nützlich: Die Leistung entspricht der Startzeit des Betriebssystems, aber das Betriebssystem startet einmal im Monat, sodass eine Optimierung, die wenig Sinn ergibt, nicht sinnvoll ist.

Da es mein tägliches Geschäft ist, möchte ich auf die 4 folgenden Teile hinweisen, aus denen die "Leistung" besteht.

  1. CPU-Auslastung
    Dies sollte vergleichbar sein, dh eine Task, die 1000 ms auf Bare Metal benötigt, wird in 1000 ms Prozesszeit und wahrscheinlich 1050 ms Taktzeit in einer inaktiven VM-Umgebung auf derselben Hardware ausgeführt (einige Details später). Google das MSDN für processtime und queryperformancecounter und Sie können eine Sache tun, die zeigen kann, wie viel die VM Ihre CPU-Zeit verbraucht.

  2. SQL-Leistung
    Die SQL-Leistung hängt stark von der E / A-Leistung des Datenspeichers ab, in dem die SQL-Daten gespeichert sind. Ich habe einen Unterschied von 300% zwischen ISCSI der ersten Generation gesehen, den Sie auf Buffalo Home NAS finden können, und ISCSI mit DCE und einer echten Old-School-FC-Umgebung auf allen Ebenen. Der FC gewinnt auch heute noch, da die FC-Latenz die niedrigste Archivierungsrate ist, die zu einer "Kopie" des FC-Protokolls für Verbesserungen des TCP / IP-Datencenters führt. Hier ist IOps und Latenz von entscheidender Bedeutung, aber auch die IO-Bandbreite vom Serverprozess bis zum Medium - hängt davon ab, ob die App zu No-SQL oder zu Datawarehousing tendiert oder wie ERP-Systeme in der Mitte ist ... Sage KHK für kleine Unternehmen, SAP für die Großen.

  3. Dateisystemzugriff
    Einige Anwendungen, wie Video-Streaming, basieren auf einer garantierten Mindestbandbreite, andere auf einem maximalen E / A-Durchsatz, z. B. das Öffnen großer Dateien in einem Hex-Editor und das Laden eines Videoprojekts in Ihren Lieblingsfilm. Keine typische Situation auf einem VM .... die IOps können auch für Entwickler wichtig sein. Entwickler verwenden häufig VMs, da Entwicklungsumgebungen sehr sensibel sind und die Versuchung groß ist, dies in einer VM zu tun. Das Kompilieren eines großen Projekts bedeutet oft, Tonnen kleiner Dateien zu lesen, die Compiler-Aufgaben zu erledigen und eine EXE-Datei und die zugehörigen Komponenten zu erstellen.

  4. Netzwerklatenz zum Client
    Hier hängt die Benutzerfreundlichkeit von WYSIWIG-Programmen wie Word 2010, Openoffice Writer, LaTEX, GSView und anderen stark von der Geschwindigkeit ab - wie schnell eine Mausaktion vom Client zum Server gelangt. Besonders in CAD-Apps ist dies wichtig .... aber auch kein LAN-Problem, sondern der Fernzugriff über WAN, wo dies wichtig ist.

Aber - und ich spreche aus der Perspektive jahrelanger Beratung - es gibt Benutzer mit dem Administratorkennwort (und sie sind oft Angestellte einer BIG-Firma mit einem BIG-Budget und einem BIG-Taschenbuch), die sich über dies und das beschweren, aber es muss geklärt werden welche leistungskomponente ist ihnen wichtig und welche ist aus sicht der von ihnen verwendeten anwendung wichtig.
Es ist höchstwahrscheinlich kein Notizblock, sondern eine hochentwickelte Anwendung zum Entwickeln dieses und jenes, die ebenfalls sehr teuer war und auf VMware, HyperV oder Xenapp verschoben werden sollte und nicht die erwartete Leistung erbringt.

Sie haben jedoch keine Ahnung, dass es mit 1,5-GHz-Xeons auf Blades laufen kann, die nicht für reine CPU-Leistung ausgelegt sind. Sie sind für einen Durchschnittswert ausgelegt, z. B. "Optimiert für $ pro CPU-Zyklus" oder "CPU-Zyklen pro Watt". .

Und wenn wir über Kompromisse und Einsparungen sprechen, führt dies meist zu Überbindungen. Überlastungen führen zu einem Mangel an Ressourcen, bei denen die CPU recht gut gehandhabt werden kann, aber ein Mangel an Arbeitsspeicher führt zu Paging, ein Mangel an E / A in den Core-Routern führt zu längeren Antwortzeiten für alles, und eine Transaktionsüberlastung für jede Art von Speicher kann jede nützliche App stoppen zu schnell reagieren. Hier ist eine Überwachung erforderlich, aber viele Softwareanbieter sind nicht in der Lage, solche Informationen bereitzustellen. Andererseits kann ein Host mit Ressourcen von 3 physischen Servern höchstwahrscheinlich 8 virtuelle Maschinen mit dem gleichen Layout wie die physischen verwalten.

Die CPU-Kompromisse bei inaktiven Systemen führen häufig dazu, dass Systeme 50% langsamer arbeiten als physische Systeme. Andererseits ist niemand in der Lage, das Betriebssystem "Real World" und die App "Real World" zu installieren, die die IT-Mitarbeiter des Kunden in die VM integrieren möchten Box. Und es dauert Tage (vielleicht Wochen, aber sicher 42 Meetings), um zu verdeutlichen, dass die VM-Technologie durch den Handel mit reiner CPU-Geschwindigkeit Flexibilität bieten kann. Dies ist nur in die CPUs dieser Blade-Systeme integriert, die heutzutage größere VM-Umgebungen hosten. Auch der Speicher wird nicht vergleichbar sein, auch einige Kompromisse gelten. DDR3 1600 CL10 hat eine höhere Speicherbandbreite als DDR2 800 ECC LLR - und jeder weiß, dass Intel-CPUs anders davon profitieren als AMD-CPUs. Aber sie werden nur selten in produktiven Umgebungen eingesetzt. mehr in Whiteboxen oder in Rechenzentren in Ländern der 3. Welt, die einen Rechenzentrums-Service für 10% des Preises anbieten, den ein Rechenzentrum in Ihrem Heimatland möglicherweise in Rechnung stellt. Dank Citrx kann ein Rechenzentrum überall sein, wenn zwischen dem Endbenutzer und dem Rechenzentrum weniger als 150 ms Latenz liegen.

Und die Perspektive der Heimanwender ...

Zu guter Letzt möchten einige Leute Win7 oder XP wegwerfen und gegen Linux eintauschen, und dann stellt sich die Frage nach den Spielen, da eigentlich nur wenige Spiele für Linux und Windows verfügbar sind. Gaming setzt stark auf 3D-Beschleunigung. VMWare 6.5 Workstation und der angeschlossene kostenlose Player können mit DirectX 9 umgehen, dh ein Doom3 in einer VM kann auf der Host-Grafikkarte im Vollbildmodus ausgeführt werden. Bei Spielen handelt es sich meistens um 32-Bit-Apps, sodass sie nicht mehr als 3 GB und meistens nicht mehr als 3 CPUs (bei Crysis) verbrauchen. Neuere VM-Player und WS können mit höheren DirectX-Versionen und wahrscheinlich auch mit OpenGL umgehen ... Ich habe UT und UT2004 auf VMware 6.5 gespielt, der Host hatte ein ATI Radeon 2600-Mobiltelefon und eine T5440-CPU. Es war stabil bei 1280x800 und sogar auf Netzwerkspielen spielbar ....


1
Wir mögen gute Antworten auf zeitlose Fragen. Willkommen bei Server Fault!
Michael Hampton

9

Ja. Das ist aber nicht die Frage. Die Differenz ist normalerweise vernachlässigbar (1% bis 5%).


3
Ich glaube Ihnen. Aber dennoch: Können Sie einen Benchmark verknüpfen, an dem er tatsächlich gemessen wurde?
Michal Illich

9
Es hängt von so vielen Faktoren ab, dass niemand Ihre Frage beantworten kann. Dies hängt davon ab, über welchen Hypervisor Sie verfügen, welche Serverspezifikation und welchen Speicher Sie verwenden und was zum jeweiligen Zeitpunkt noch mit dem Host geschieht.
Chopper3

Eigentlich nicht. Wenn Sie viel unternehmen, wird die physische Maschine gemeinsam genutzt. Aber der Overhead des Hyper-Visors ist aufgrund der Virtualisierung der Hardware mittlerweile ziemlich konstant. Anturally, wenn Sie beginnen, mehrere VMs zu laden, wird die resultierende verfügbare Leistung gemeinsam genutzt, aber sie ist insgesamt immer noch nur geringfügig geringer als die des Servers.
TomTom

11
Zitat benötigt.
Zoredache

Der Overhead des Hypervisors hängt davon ab, wie stark das Betriebssystem beleuchtet werden kann, und dies bedeutet nicht, dass es paravirtualisiert ist.
Tony Roth

8

Ich möchte darauf hinweisen, dass die Virtualisierung in bestimmten Situationen die physische Leistung übersteigen kann. Da die Netzwerkschicht nicht auf die Gigabit-Geschwindigkeit beschränkt ist (obwohl die Hardware-Emulation von einer bestimmten LAN-Karte stammt), können VMs auf demselben Server mit einer Geschwindigkeit miteinander kommunizieren, die über der von mehreren Phyiscal-Servern mit durchschnittlicher Netzwerkausrüstung liegt.


2
Zwei Softwareteile, die auf zwei VMs auf demselben Server ausgeführt werden, kommunizieren nicht schneller als zwei Softwares unter demselben Betriebssystem auf einem Bare-Metal-Server.
Bokan

1

Ich habe einige Testvergleiche mit derselben Software durchgeführt, die denselben Test ausführt (.NET-basierte Webanwendung mit hohem Datenverkehr und beträchtlichem SQL Server-Zugriff). Folgendes habe ich gesehen:

  • Die physische Maschine ist besser in der Lage, Klassen zu instanziieren (was sich in der Zuweisung von Arbeitsspeicher auf Systemebene niederschlägt). Dies ist für mich sinnvoll, da physische Maschinen dies über Speicherverwaltungshardware und VMs über Software (mit teilweiser Hardwareunterstützung) (auf der VM) tun verbrachte die App viel Zeit in ihren Konstruktoren (wo der Speicher zugewiesen wird (und nichts anderes getan wird), auf der physischen Maschine waren die Konstruktoren nicht einmal in den Top 1000 enthalten)
  • Wenn Sie sich in der Mitte einer Methode befinden, sind die beiden ungefähr gleichwertig - wahrscheinlich sind die meisten Benchmarks so aufgebaut, dass die beiden "gleich" sind.
  • Wenn Sie auf einen Netzwerkcontroller zugreifen, schlägt der physische Computer die VM ein wenig aus. Auch hier muss der physische Computer nicht viel zwischen dem .NET-Prozess und der Hardware sitzen. VM fügt weitere "Dinge" hinzu, die jede Transaktion durchlaufen muss.
  • Wirklich dasselbe gilt für den Festplattenzugriff (der SQL Server befand sich auf einem anderen Computer) - der Unterschied ist sehr gering, aber wenn Sie alle zusammenfassen, fällt dies auf. Dies könnte durch den langsameren Netzwerkzugriff oder einen langsameren Festplattenzugriff verursacht worden sein.

Ich kann leicht erkennen, wie jemand Benchmarks erstellen kann, die beweisen, dass sie sich um 1% unterscheiden oder gleich sind oder wo VMs schneller sind. Fügen Sie nichts ein, bei dem Ihr Prozess die Vorteile der lokalen Hardware-Unterstützung nutzt, die die VM zur Simulation in der Software benötigt.


Das ist, wonach ich gesucht habe. +1
Phil Ricketts

1

Sie versuchen, ein Betriebssystem, eine Software und Daten, die auf einer bestimmten physischen Hardware installiert sind, mit demselben Betriebssystem, derselben Software und denselben Daten zu vergleichen, die in einem Hypervisor auf derselben ursprünglichen Hardware installiert sind. Dieser Vergleich ist einfach nicht gültig, weil fast niemand dies tut (zumindest zuerst). Natürlich wäre das wahrscheinlich langsamer. Zum Glück wird der häufigste Grund, warum Sie Server überhaupt virtualisieren, völlig übersehen.

Ein besseres Beispiel hierfür ist die Betrachtung von zwei (oder mehr!) Älteren Servern in Ihrem Rechenzentrum. Suchen Sie nach Servern, die eine recht gute Leistung erbringen, aber jetzt veraltet sind und ihren Aktualisierungszyklus durchlaufen. Diese Server funktionieren bereits auf älterer Hardware gut, und dank Moores Gesetz wird alles, was Sie neu bekommen, weit über die Spezifikation hinausgehen.

Also, was machst du? Es ist einfach. Anstatt zwei neue Server zu kaufen, kaufen Sie nur einen und migrieren dann beide alten Server auf dasselbe physische neue Gerät. Wenn Sie sich auf den Kauf Ihres neuen Servers vorbereiten, planen Sie, dass Sie über genügend Kapazität verfügen, um nicht nur die Last von beiden älteren Servern, sondern auch die Last vom Hypervisor zu bewältigen (und möglicherweise ein bisschen mehr, damit Sie immer noch einen Leistungsschub erhalten und Wachstum ermöglichen kann).

Fazit: Virtuelle Maschinen bieten für die meisten Situationen eine ausreichend gute Leistung und helfen Ihnen, Ihre Server besser zu nutzen, um "verschwendete" Rechenleistung zu vermeiden.

Lassen Sie uns das jetzt etwas weiter strecken. Da es sich um alte Server handelt, haben Sie sich vielleicht ein paar einfache Pizzabox-Server im Wert von 1500 US-Dollar angesehen, um sie zu ersetzen. Es besteht die Möglichkeit, dass sogar eine dieser Pizzaschachteln die Belastung beider hypothetischer älterer Maschinen problemlos bewältigen kann. Nehmen wir jedoch an, Sie geben 7500 USD oder mehr für echte Hardware aus. Jetzt verfügen Sie über ein Gerät, das problemlos bis zu einem Dutzend Ihrer vorhandenen Server verwalten kann (abhängig davon, wie Sie mit Speicher und Netzwerk umgehen). Die anfänglichen Kosten betragen nur 5. Sie haben auch den Vorteil, dass Sie nur einen physischen Server verwalten und entkoppeln können Wenn Sie Ihre Software von Ihrer Hardware entfernen (dh wenn die Hardware-Aktualisierung mit geringerer Wahrscheinlichkeit eine neue Windows-Lizenz erfordert oder Ausfallzeiten verursacht), sparen Sie eine Menge Strom, und Ihr Hypervisor kann Ihnen bessere Informationen zur Leistung liefern als Sie. hatte in der Vergangenheit. Holen Sie sich zwei davon, und je nachdem, wie groß Sie sind, ist Ihr gesamtes Rechenzentrum möglicherweise auf nur zwei Computer beschränkt, oder Sie möchten den zweiten Server als Hot-Standby-Server verwenden, um eine bessere Geschichte der Hochverfügbarkeit zu erzählen.

Mein Punkt hier ist, dass es nicht nur um Leistung geht. Ich würde niemals einen perfekt guten Produktionsserver nehmen und ihn alleine auf eine gleichwertige Hardware virtualisieren, nur weil. Es geht mehr um Kosteneinsparungen und andere Vorteile, die Sie aus der Konsolidierung ziehen können, z. B. Hochverfügbarkeit. Um diese Vorteile zu realisieren, müssen Sie Server auf eine andere Hardware umstellen. Dies wiederum bedeutet, dass Sie sich die Zeit nehmen müssen, die Hardware angemessen zu dimensionieren, einschließlich der Berücksichtigung der Hypervisor-Nachteile. Ja, Sie benötigen möglicherweise insgesamt etwas mehr Rechenleistung, als wenn jede dieser Maschinen auf ihrem eigenen physischen Gerät installiert wäre (Hinweis: Sie benötigen wahrscheinlich viel weniger Rechenleistung ), aber dies wird viel billiger und energieeffizienter sein. und einfacher zu pflegen einen physischen Server ausführen als viele.


2
Es geht nicht immer um Konsolidierung und Kosteneinsparungen. Ein Hypervisor ist ein Produkt mit vielen Funktionen, von denen viele unabhängig von den Gründen, aus denen die meisten Menschen virtualisieren, einen geschäftlichen Mehrwert bieten können. Konsolidierung und Kosteneinsparungen können Teil dieses Geschäftswerts sein oder auch nicht. Snapshots, Livemigration, Storage vMotion und Hardwareabstraktion können Teil der Geschäfts-IT-Strategie sein.
jgoldschrafe

@jgold Punkt genommen. Sie haben sogar ein großes vergessen: Hochverfügbarkeit. Zu meiner Verteidigung habe ich bei meiner letzten Bearbeitung Hardware-Abstration (Art) erwähnt, und für jemanden, der die Virtualisierung nur unter dem Gesichtspunkt der ursprünglichen Frage untersucht, denke ich, dass Konsolidierung / Kosten der wirklich große Punkt sind, den es zu vermitteln gilt.
Joel Coel

Die Frage nach einem Leistungsvergleich ist ein durchaus zutreffender Aspekt, um die Virtualisierung zu untersuchen, und nicht, warum Virtualisierung nützlich ist oder nicht.
Nick Bedford

0

Ich habe gerade ein Upgrade auf eine SSD (OCZ Vertex 2) durchgeführt und ich führe darauf meine XP VM-Entwicklungsumgebung aus. Ich bin ein Softwareentwickler. Eine Sache, die mir aufgefallen ist, ist, dass wenn ich ein Programm starte (eines, das groß genug ist, um Zeit zum Laden zu brauchen), ein Kern der virtuellen CPU herausspringt. Dies passiert auch beim Laden des IE. Da die CPU ausfällt, gehe ich davon aus, dass der Engpass die CPU und nicht die SSD ist. Aber es scheint seltsam, ich habe das Gefühl, dass, wenn dasselbe auf einer physischen Maschine gemacht würde, diese schneller geladen würde, und ich das Gefühl habe, dass es einen zusätzlichen Verarbeitungsaufwand gibt, der von VMWare ausgeführt wird und CPU-Verbrauch beim Festplattenzugriff verursacht.

Ein Beispiel: Ich verwende Delphi und auf einem physischen Computer mit einer normalen Festplatte kann der Start nach einem Kaltstart 20 Sekunden dauern. In der VM, auf der eine SSD ausgeführt wird, wird sie nach einem Kaltstart in 19 Sekunden geladen. Kein großer Unterschied, ich wette, wenn die SSD auf der physischen Maschine wäre, würde sie schneller geladen. Obwohl ich die CPU-Auslastung auf der physischen Maschine nicht überprüft habe, war die CPU möglicherweise auch dort der Engpass.

Das Gefühl der VM ist jedoch, dass der Festplattenzugriff die VM belastet.


0

Offensichtlich ist eine virtuelle Maschine langsamer als die physische Maschine. Wenn Sie sich in diesem Szenario befinden, müssen Sie jedoch bewerten, was für Ihre Anforderungen optimal ist. Wenn Sie nur ein System benötigen und es schnell sein muss, installieren Sie es direkt auf der Hardware. Wenn Sie andererseits Flexibilität, Skalierbarkeit (und alle anderen Vorteile der Virtualisierung: P) benötigen, stellen Sie eine VM bereit. Es wird langsamer sein, aber meiner Meinung nach ist es in einigen Fällen gerechtfertigt und die Leistung ist nicht wesentlich langsamer.


0

Offenbar hat Microsoft einige Benchmarktests mit BizTalk Server und SQL Server in verschiedenen Konfigurationen durchgeführt. Siehe Link unten:

http://msdn.microsoft.com/en-us/library/cc768537(v=BTS.10).aspx


3
Bitte zitieren Sie die Schlussfolgerungen in Ihren Antworten oder dies ist wenig mehr als SPAM für den bereitgestellten Link. Danke.
Chris S

Das Verhältnis von virtueller zu physischer SQL Server-Leistung (unter Verwendung von BizTalk: Messaging / Verarbeitete Dokumente / Sek.-Metrik, die anscheinend realistisch ist) wird mit 88% angegeben - unter Verwendung von HyperV. Sieht nicht gut aus.
Deadbeef

Oh mein Gott, ist das eine 250 MB PDF-Datei? O_O
David Balažic

-1

Im Idealfall liegt die Leistung von Virtual PC bei:

CPU: 96-97% des Hosts

Netzwerk: 70-90% des Hosts

Festplatte: 40-70% des Hosts


3
Und diese Zahlen kommen aus ...
Jim B

-4

Tut mir leid, dass ich TomTom nicht zustimme.

Ich benutze VMware Workstation seit einiger Zeit hauptsächlich unter Windows XP, Windows Vista und jetzt auf nativen Windows Seven-Systemen, um verschiedene Windows-Versionen sowie Ubuntu auszuführen.

Ja, eine virtualisierte Umgebung ist langsamer als ein natives System und kann einen Bereich von 5 bis 100% aufweisen.

Das Hauptproblem ist nicht die CPU-Auslastung, sondern der fehlende physische Speicher.

Nehmen wir an, Sie haben ein Windows Seven 64 Ultimate, das auf einem 4-Gbit-System ausgeführt wird, das im Leerlauf fast 1,5 Gbit benötigt und ~ 10% der CPU beansprucht. Das Starten der zusätzlichen VMware-Schicht kostet ca. 300 KB und die CPU-Auslastung steigt auf ca. 20%. Wenn Sie dann ein virtuelles System in VMware starten, müssen Sie mindestens den für diese virtuelle Maschine definierten Arbeitsspeicher anfordern, der für jedes anständige System mindestens 1 GB beträgt. Die CPU-Auslastung beträgt dann ~ 60%, wenn die virtuelle Maschine Ubuntu ist, und ~ 80% für alle aktuellen Windows-Betriebssysteme.

Jetzt starten Sie verschiedene Apps in dieser virtuellen Maschine.

Wenn die von Ihnen für diese virtuelle Maschine festgelegte Speichermenge nicht ausreicht, beginnt das virtualisierte System mit dem Auslagern und verlangsamt dann die Gesamtleistung und Reaktionsfähigkeit erheblich.

Wenn die Summe aus dem für diese virtuelle Maschine festgelegten Arbeitsspeicher und dem für Ihr natives System erforderlichen Arbeitsspeicher über dem Arbeitsspeicher Ihres nativen Systems liegt, wird Ihr natives System ausgelagert und verlangsamt sowohl das native als auch das virtualisierte System.

Daher hängt es zunächst vom Gleichgewicht des Arbeitsspeichers ab, der sowohl für die systemeigenen als auch für die virtualisierten Maschinen benötigt wird.

Jetzt ist es fast genauso mit der CPU-Auslastung. Wenn eine virtualisierte App eine große CPU-Auslastung und eine native App auch eine große CPU-Auslastung benötigt, muss Ihr natives System die Priorität verwalten und die CPU-Auslastung zwischen den verschiedenen Apps ausgleichen. Das virtualisierte System ist nur eine App Das Phänomen ist ein klassisches CPU-Lastproblem, das Sie mit App-Prioritäten umgehen können.

Mein erster Rat, wenn Sie Virtualisierung benötigen, ist es, eine Menge Speicher auf Ihrem Computer zu platzieren, unabhängig davon, welches Betriebssystem Sie nativ oder innerhalb eines virtuellen Computers verwenden.

Nur meine 2 Cent.

Freundliche Grüße.


Stellen Sie sich diese Konfiguration vor: 12 GB Speicher, zwei Quad-Core-Prozessoren. Dazu nur 1 virtuelle Maschine mit 11,5 GB Speicher und der gesamten CPU-Leistung. Wird es noch eine merkliche Verlangsamung geben?
Michal Illich

3
Wie würde Win7 x64 im Leerlauf 1,5 GB (oder eine CPU-Zeit überhaupt) benötigen? Mehr wie 384-512MB nach meiner Erfahrung - der Rest ist nur für I / O-Caching reserviert und wird bei Bedarf an anderer Stelle veröffentlicht ^^
Oskar Duveborn

4
Sie sprechen jedoch von Workstation-Virtualisierung und nicht von einem Bare-Metal-Hypervisor, der im Vergleich zur Virtualisierung unter Windows nur einen Bruchteil des Overheads verursacht. Die Ubuntu-Cloud ist zwar kein Bare-Metal-Hypervisor, nutzt jedoch kaum die Ressourcen von Windows - sie läuft auf Ubuntu-Servern, die beispielsweise keine grafische Benutzeroberfläche haben.
Jon Rhoades

3
-1: Sehr schlechter Vergleich. VM Workstation ist KEIN Hypervisor. Zweitens geht es darum, den Host stark zu belasten. Das wird sich natürlich auf die Gast-VM auswirken.
Gravyface

1
@ Oskar> Wie würde Win7 x64 im Leerlauf 1,5 GB (oder überhaupt eine CPU-Zeit) benötigen? Ähnlich 384-512MB in meiner Erfahrung in diesem Bild Werfen Sie einen Blick theliberated7dwarfs.as2.com/pictures/png/W7-Mem.png 7-64 Windows 4 GB RAM, frischen Neustart, runing keine Anwendung , aber MSFT Wesentliche Sicherheit und Kapersky! Hoppla: 1,53 GB RAM und durchschnittlich 7% der CPU-Auslastung! @ TomTom & Gravyface 1-Die anfängliche Frage betraf eine generische VM-Maschine, keinen Hypervisor! 2-My Crapy Technical Platform macht das Glück von MSFT und VMware. Sie mögen es oder nicht und ich werde Ihnen keine Vorwürfe machen;) Mit freundlichen Grüßen
Dopey

-4

Nach meiner Erfahrung sind virtuelle Maschinen immer viel langsamer als physische.

Sie werden es nur bemerken, wenn Sie Anwendungen ausführen, die auf die Festplatte zugreifen und die CPU stark belasten. Ich habe viele Datenbanken und Webserver auf virtuellen Maschinen ausgeführt, und als Endbenutzer und aufgrund des Feedbacks anderer Endbenutzer (dh Zugriff auf die App über einen Remote-Webbrowser) gibt es bei der Verwendung virtueller Maschinen eine große Verzögerung.

Natürlich kann eine richtig konfigurierte virtuelle Maschine bis zu 80% (ich kenne die reale Zahl nicht) oder unabhängig von der Geschwindigkeit der physischen Maschine ausmachen, aber am Ende müssen Sie sich wirklich eingehend mit der Funktionsweise der Anwendung und der Funktionsweise der virtuellen Maschine befassen funktioniert. Ich denke, es ist eine Kostengleichung dafür, wie wertvoll Ihre Zeit für die Konfiguration von VMs ist, wenn Sie nur einen neuen Server kaufen und hosten.

Für mich geht es bei virtuellen Maschinen NICHT um LEISTUNG, sondern darum, einfacher zu verwalten und mehrere leistungsschwache VMs zu hosten.


2
Sie scheinen wirklich Mist Virtualisierungstechnik auszuführen. Ernsthaft;) MS hat Leistungsvergleiche mit Hyper-V und SQL Server durchgeführt - und dabei Zahlen ermittelt, die rund 3% des Overheads für die Bare-Metal-Maschine bedeuten. Dies bedeutet natürlich, nur eine virtuelle Maschine auszuführen oder zu akzeptieren, dass die Leistung aufgeteilt wird - aber der Aufwand für die Virtualisierung ist wirklich gering. Und es geht nicht nur darum, mehrere leistungsschwache VMs zu hosten. Es kann sich auch um eine einfache Wartung handeln - das Verschieben einer VM auf eine neue Hardware ist einfach, eine physische Maschine kann komplizierter sein.
TomTom

@TomTom. Ich würde Ihnen gerne glauben, aber Microsoft hat natürlich ein Interesse daran, jedem zu sagen, dass sein Hypervisor superschnell ist. Ich weiß von Unternehmen, die Microsoft Virtualization AND VmWare ausprobiert haben, dass das, was Microsoft sagt, nur "Marketing" ist. Haben Sie es tatsächlich selbst verglichen? Wenn Sie 3% Overhead haben, teilen Sie mir bitte Ihr Setup mit, da ich es ausprobieren möchte
Zubair,

2
Mist, Zubair. Ich bin kein Idiot - ich habe vorher Tests durchgeführt. Ich habe eine Menge Sachen auf VMs übertragen und in diesen Tagen kaum etwas Physisches ausgeführt. Ich habe ein Benchmarking durchgeführt. Natürlich sind Hyper-Visiere knifflig - Menschen setzen eine Menge Server auf eine Maschine und überlasten sie. Höchstwahrscheinlich tatsächlich im E / A-Bereich (Datenträgerleistung). Aber all das ist für einen Hypervisor nicht wesentlich. Das Gleiche gilt für RAM - ja, Sie benötigen eine Menge, und ja, die simulierten Maschinen benötigen immer noch RAM, um effizient zu sein. Das ist aber kein Hypervisor-Problem.
TomTom

2
@TomTom. Haben Sie irgendwelche Links, die ich lesen könnte, um mehr über diese virtuellen vs physikalischen Leistungstests zu erfahren
Zubair

1
@Zubair - Obwohl ich selbst zu 100% ein VMWare-Mann bin, muss ich TomTom zustimmen, aber ich sehe sehr wenig Leistungseinbußen bei CPU- und Speichervorgängen auf moderner, gut konfigurierter Hardware, ja starkes gleichzeitiges gemischtes Lesen / Schreiben E / A kann spürbar stärker betroffen sein als CPU und Arbeitsspeicher, aber wir sprechen immer noch über einen einstelligen Perzentilverlust auf der ganzen Linie. Ich verwalte fast 1.000 ESXi-Hosts in einem Unternehmen mit über 8.000 und wir sind überzeugt, dass nur eine Handvoll sehr stark an E / A gebundener Anwendungen für ESXi schlecht geeignet sind.
Chopper3
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.