Das Ausführen von Ubuntu in VirtualBox unter Windows 8.1 verwendet keine CPU zu 100%.

1095
hunyadym

Ich verwende Ubuntu 14.10 64 Bit unter Windows 8.1 64 Bit mit VirtualBox 4.3.10. Ich habe eine Intel Core i5-2410M-CPU mit zwei physischen Kernen und aktiviertem HyperThreading und Virtualisierung.

Ich habe alles in diesem anderen Beitrag erwähnt :

  • Systemversion auf Ubuntu 64 Bit eingestellt
  • E / A-APIC ist aktiviert
  • CPU-Nummer der VM ist auf 2 gesetzt (maximal zulässig)
  • VT-x / AMD-V aktiviert
  • Ausführungsobergrenze beträgt 100%

Wenn ich eine CPU-intensive Aufgabe in Ubuntu ausführte, wird gemäß dem Ubuntu-Aufgabenmanager die CPU zu 100% verwendet. Unter Windows sind es jedoch nur ~ 70%.

Ubuntu (Gast):

Ubuntu-CPU-Nutzung

Windows (Host):

Windows-CPU-Nutzung

Es ist nicht das Maximum. Wenn ich CPU-intensive Aufgaben unter Windows ausführe, werden 100% erreicht:

Das Ausführen von Ubuntu in VirtualBox unter Windows 8.1 verwendet keine CPU zu 100%.

Ubuntu sieht nur 2 CPUs mit 1 Thread pro Kern (läuft lscpu):

lscpu-ausgabe

Wie kann ich dafür sorgen, dass das virtuelle Ubuntu meine gesamte CPU-Leistung nutzt?

1
Die meisten Systeme reservieren CPU für ihre eigenen Aufgaben, es sei denn, Sie laufen auf dem Bare-Metal-System, Sie würden keine 100% -ige Auslastung auf dem Host-Computer erreichen. Daniël W. Crompton vor 9 Jahren 0
OK, aber ich kann andere schwere Aufgaben auf dem Hostsystem ausführen, während mein Gast die CPU zu 100% verwendet, was die CPU-Auslastung auf dem Hostsystem erhöht, auf dem Gastsystem jedoch nicht abnimmt. Es scheint also, dass in meiner CPU noch Strom vorhanden ist, den ich nicht auf dem Gastsystem verwenden kann. hunyadym vor 9 Jahren 0

2 Antworten auf die Frage

1
mingalsuo

Es gibt einige Dinge, die die Dinge so erscheinen lassen, wie sie sind. Korrigieren Sie mich, wenn ich etwas falsch verstanden habe:

  • HyperThreading erscheint in Ihrer Dual-Core-CPU als zwei zusätzliche Kerne, fungiert jedoch nicht als echte Kerne. Mit HT erhalten Sie eine maximale Leistungssteigerung von 30% und in realen Anwendungen 10%. Die vollständige Last auf Ihrem Windows-Host zeigt niemals 100% Last auf jeder logischen CPU im Task-Manager. Der Task-Manager kann auch die Kernel-Space-Last ausblenden und nur die User-Space-Last anzeigen.
  • Sie haben Ihrer VM zwei logische CPUs zur Verfügung gestellt, die bis zu 50% der gesamten Systemlast auf dem Windows-Host ausmachen.
  • Unter der Annahme, dass 100% Last auf dem Gast 100% Last auf jeder präsentierten logischen CPU entspricht, verursachen Sie eine Gesamtlast von 50% auf dem Windows-Host und andere Dinge laufen, anscheinend 68% der Gesamtsumme .

Ich beschäftige mich seit einiger Zeit (sogar professionell) mit Virtualisierung, Windows und Linux, und HyperThreading wirft immer wieder Fragen wie diese auf. Das Problem ist, dass neue logische Kerne auftauchen, die anscheinend nicht die gleiche Leistung wie die richtigen Kerne haben (schlechte Erklärung). Ein anderes Beispiel ist das Gegenteil, bei dem die Nachricht lautet, dass die neuen CPUs so viel schneller waren, als die gesamte Systemlast beträgt nur etwa 50%, während die Last tatsächlich 100% beträgt.

1.) Ja, ich verstehe was HT ist. Tatsächlich zeigt der Task-Manager alle 4 (virtuellen) Kerne zu 100% an, wenn ich auf der Host-Seite etwas CPU-intensives mache, während die virtuelle Maschine mit voller Leistung läuft: http://i.imgur.com/dWDfePg.png Dies bedeutet, dass die guest verwendet nicht die volle Leistung der CPU (da ich andere Dinge auf der Host-Seite erledigen kann, während der Gast auf 100% ist, was die CPU-Last erhöht). hunyadym vor 9 Jahren 0
2.) Ja, ich weiß, dass das Gast-Linux 2 Kerne mit jeweils nur einem Thread sieht (wie der lscpu in der Frage angibt) - also kein Hyperthreading. Ich kann die CPU-Nummer jedoch nicht auf 4 setzen: http://i.imgur.com/RymrM7V.png und als Dokumentation (https://www.virtualbox.org/manual/ch03.html#settings-processor) sagt: "Sie sollten virtuelle Maschinen nicht so konfigurieren, dass mehr CPU-Kerne verwendet werden, als physisch verfügbar sind (echte Kerne, keine Hyperthreads)." hunyadym vor 9 Jahren 0
Die Frage gilt jedoch immer noch: Kann ich (und wenn ja, wie) erreichen, dass das Gastbetriebssystem meine gesamte CPU-Leistung nutzen kann? hunyadym vor 9 Jahren 0
@hunyadym Damit die VM die gesamte verfügbare CPU-Leistung erhält, schalten Sie sie aus und setzen Sie den CPU-Betrag auf vier. mingalsuo vor 9 Jahren 0
0
Xen2050

VirtualBox sollte eine Einstellung unter den Ubuntu "Machine" -Einstellungen haben. Irgendwo gibt es CPU-Einstellungen, in denen Sie die maximal zulässige CPU-Auslastung (und Anzahl der Kerne und einige Funktionen) ändern können. Es ist wahrscheinlich auf max. 70% eingestellt. Falls gewünscht, ändern Sie ihn auf einen höheren Wert.

Außerdem kann es sich bei Ihrer realen CPU um eine der "lustigen" Intel-Prozessoren handeln, die nur über zwei echte Kerne verfügt, aber "vorgibt", vier "falsche" Kerne über Hyperthreading zu haben. Erreicht Ihre Windows-CPU-Auslastung auf allen Kernen 100%? Eine alte Hyperthreading-CPU, die ich früher hatte, würde bei einem "falschen" Kern immer nur maximal 100% erreichen, da es nur einen echten CPU-Kern gab, den er bei zwei "falschen" Kernen nie zu 100% erreichen konnte. Aber vielleicht hat sich das Threading & Fenster seitdem geändert ...

[Normalerweise hören Sie "Warum ist meine CPU voll?" das ist eine andere Richtung; -]

Ich denke, es ist die von Ihnen erwähnte Execution Cap-Einstellung, aber (wie ich in der Frage erwähnt habe) ist sie bereits auf 100% gesetzt (meine Einstellungen: http://i.imgur.com/RymrM7V.png; leider auf Ungarisch ähnlich) Englischer Bildschirm hier: http://i.stack.imgur.com/UkRK5.jpg). Und ja, von Windows aus kann ich die CPU zu 100% nutzen: http://i.imgur.com/dWDfePg.png hunyadym vor 9 Jahren 0
Das sieht aus wie die Einstellung dort. Hmmm ... das könnten andere Einstellungen sein, die das Pae / nx nicht beeinflussen können, aber das Ändern von Ubuntu-Booten wird möglicherweise nicht aktiviert (könnte sich zurück ändern oder "Zurück zum Snapshot"). Nicht sicher, warum sonst, vielleicht nicht mehr CPU mit Windows & Ubuntu Virtualbox verwenden ...? Xen2050 vor 9 Jahren 0