Was ist der Leistungsunterschied einer virtuellen Maschine gegenüber dem physischen Host?

Wo ich arbeite, laufen relativ leistungsfähige PCs mit der Debian Linux Distribution. Für bestimmte Programme, die wir installieren müssen, wäre es jedoch besser, CentOS zu haben, und dies wären unsere Hauptarbeitswerkzeuge. Das Ändern des Betriebssystems für alle Computer an unserem Arbeitsplatz ist eine Möglichkeit, aber wir versuchen zu entscheiden, ob die Verwendung von VirtualBox aus Gründen der Einfachheit eine bessere Wahl ist.

Dies alles hängt vom folgenden Punkt ab. Die Programme, die wir ausführen müssen, sind Simulatoren dies sind sehr prozessorintensive Aufgaben, die bei jedem Start einer Simulation problemlos bis zu einer Stunde oder länger ausgeführt werden können. Wir müssen entscheiden, ob der Leistungsabfall bei der Verwendung von Virtual Box groß genug ist, um unseren Betriebssystemwechsel zu verdienen.

Meine Frage ist also, ob mir jemand nachprüfbar sagen kann, wie hoch die Leistung ist, wenn eine prozessorintensive Aufgabe in Virtual Box ausgeführt wird, anstatt sie auf dem nativen PC auszuführen.

Dank.

Author: aarelovich, 2016-02-03

3 answers

Bei zahlengesteuerten Programmen (sehr CPU-gebunden) sollte es für die VM fast keinen Leistungseinbruch geben. Die Anweisungen werden direkt auf der CPU ausgeführt, was für Host und VM gleich ist.

Selbst bei ernsthaften Kompilierungsaufgaben ist der Leistungsunterschied kaum spürbar. Wir führen CentOS-VMs in VMware unter Windows.

Da Sie Linux auf dem Host ausführen, können Sie auch KVM (Kernel Virtual Machine) anstelle von VirtualBox in Betracht ziehen. Es ist eine Reihe von Kernelmodulen, die bietet Virtualisierungsdienste unter Linux mit den Intel VT-x-Virtualisierungserweiterungen, die auf fast allen modernen CPUs verfügbar sind. QEMU verwendet KVM als Accellerator, um x86-Code direkt auf der Host-CPU auszuführen.

Installieren Sie Einfach die virt-manager, um es auszuprobieren.

 16
Author: Jonathon Reinhart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-02-03 10:53:18

Es gibt keine einzige gute Antwort darauf. Es hängt sehr davon ab, wie Sie eine VM verwenden und welche Programme.

Z. B. die Verwendung von VMware (einem Typ-2-Hypervisor) und einem rein CPU-gebundenen Programm ergab eine nahezu volle CPU-Geschwindigkeit. Wenn ich den gleichen Hypervisor wie ein Programm mit vielen Systemaufrufen verwenden würde, würde ich eine ernsthafte Verlangsamung bekommen.

Und die Dinge ändern sich auch, wenn Sie ein Hypervisor vom Typ 1 (kein Gast) verwenden. Und selbst zwischen denen haben Sie viele Variationen. ZB Xen mit 5 (IIRC vom letzten Wochenenden FOSDEM-Vortrag über Xen -) Modi, die es unterstützt. Von HW mit para-virtualisiert.

Zu rekapitulieren: Wie gefragt, kann es von fast keiner Verlangsamung zu ernsthaft langsamer variieren.


Wenn ich mich jetzt auf VirtualBox konzentriere, ist dies ein Hypervisor vom Typ 2. Rein CPU-gebundene Programme sollten in Ordnung sein.

 7
Author: Hennes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-10-24 15:54:36

Eigentlich klingt es so, als wäre Docker eine noch bessere Option für das, was Sie tun. Docker stellt Container bereit, bei denen es sich um isolierte Sandbox handelt, die auf demselben Kernel ausgeführt werden. Der Systemaufruf / IO-Overhead ist Null, da sich Ihre In-Container-Prozesse nicht von denen auf dem Host unterscheiden.

Da Sie bereits Linux ausführen, wäre Docker eine großartige Möglichkeit, eine CentOS-Umgebung bereitzustellen, ohne alle Ihre Computer neu installieren zu müssen.

Schauen Sie sich auch mein Dienstprogramm an, ist , was es einfach macht, Dinge wie Builds in einem Docker-Container auszuführen. Anstatt make, würden Sie scuba make ausführen. Das ist alles!

 5
Author: Jonathon Reinhart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-10-24 13:03:21