Wo ich arbeite, betreiben wir 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 möglich, aber wir versuchen zu entscheiden, ob die Verwendung von VirtualBox der Einfachheit halber die bessere Wahl ist.
Dies alles hängt vom folgenden Punkt ab. Die Programme, die wir ausführen müssen, sind Simulatoren, bei denen es sich um sehr prozessorintensive Aufgaben handelt, 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 Verwendung von Virtual Box groß genug ist, um unseren Betriebssystemwechsel zu verdienen.
Meine Frage ist also, ob mir jemand nachweislich sagen kann, welche Leistung die Ausführung einer prozessorintensiven Aufgabe in einer virtuellen Box im Vergleich zur Ausführung auf dem nativen PC beeinträchtigt.
Vielen Dank.
quelle
Darauf gibt es keine einzige gute Antwort. Es hängt sehr davon ab, wie Sie eine VM verwenden und welche Programme.
Beispielsweise ergab die Verwendung von VMWare (einem Hypervisor vom Typ 2) und einem rein CPU-gebundenen Programm eine nahezu volle CPU-Geschwindigkeit. Wenn ich denselben Hypervisor und 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-Betriebssystem vom Typ 1 (kein Gast) verwenden. Und selbst zwischen diesen gibt es viele Variationen. ZB Xen mit 5 (IIRC vom letzten Wochenende FOSDEM Talk on Xen) Modi, die es unterstützt. Von HW mit zu para virtualisiert.
Um es noch einmal zusammenzufassen: Wie gefragt kann es von fast keiner Verlangsamung bis zu ernsthaft langsamer variieren.
Wenn ich mich auf VirtualBox konzentriere, ist das ein Typ-2-Hypervisor. Rein CPU-gebundene Programme sollten in Ordnung sein.
quelle
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 Sandboxen handelt, die auf demselben Kernel ausgeführt werden. Der Systemaufruf- / E / A-Overhead ist Null, da sich Ihre In-Container-Prozesse nicht von denen auf dem Host unterscheiden.
Da Sie bereits Linux ausführen, ist Docker eine hervorragende Möglichkeit, eine CentOS-Umgebung bereitzustellen, ohne alle Ihre Computer neu installieren zu müssen.
Schauen Sie sich auch mein Dienstprogramm Scuba an, mit dem Sie ganz einfach Builds in einem Docker-Container ausführen können. Anstatt zu rennen
make
, würdest du rennenscuba make
. Das ist alles!quelle