Stromsparmechanismen in Ubuntu aktivieren

Faust2011

HTTP 418 - I'm a teapot
Moderator
Registriert
Aug. 2011
Beiträge
13.196
Hallo,

ich betreibe ein Ubuntu-System per VirtualBox auf meinem Win7-Host. Leider ist dabei die CPU-Auslastung sehr hoch, obwohl das System (Win7 & Ubuntu) vor sich "hin-idlen" (also eigentlich einfach nichts tun). Nun frage ich mich, ob das Problem an VirtualBox oder an Ubuntu liegt. Wie kann ich denn sicherstellen, dass in Ubuntu alle Stromsparmechanismen (im Kernel & im Userspace) installiert, reincompiliert und aktiv sind?

Das Ubuntu ist ein 12.04-Sytem. Ich hatte hier mal im "Virtualisierung und Emulation"-Unterforum nachgefragt, jedoch scheint mir dort auch keiner einen Rat zu haben (Link zum Thread).
 
wenn die cpu im leerlauf ausgelastet ist, hat das meiner meinung nach nichts mit stromsparmechanismen zu tun. Da stimmt einfach etwas an der installation nicht. Guest Additions sind installiert?
 
Irgendwo muss die Last ja her kommen (und wie bereits gesagt, hat das nichts mit Stromsparmechanismen zu tun). Öffne also im Host und in der VM den Task Manager und guck nach. Entweder liegt die Last in der VM an, dann siehst du es dort oder sie liegt im Host an, dann siehst du es dort. Ein Dazwischen gibts nicht.
 
Ich meine, dass ich sie installiert habe, allerdings könnten die beim letzten Update auf 12.04.4 wieder rausgeflogen sein. Das werde ich heute Abend mal kontrollieren. Danke für den Hinweis.
Ergänzung ()

Yuuri schrieb:
Irgendwo muss die Last ja her kommen (und wie bereits gesagt, hat das nichts mit Stromsparmechanismen zu tun). Öffne also im Host und in der VM den Task Manager und guck nach. Entweder liegt die Last in der VM an, dann siehst du es dort oder sie liegt im Host an, dann siehst du es dort. Ein Dazwischen gibts nicht.

Ein 'top' auf Linux-Seite liefert nur Prozesse im Status 'S', also sleeping und auf Host-Seite (Win7) brauchen die einzelnen Prozesse ebenfalls keine CPU-Zeit. Trotdem liegt die Auslastung des Windows-Systems (6 Kerne - 12 Threads) bei ca. 20%. Wenn man im Task-Manager die Kernel-Zeiten anzeigen lässt, dann wird da auch einiges an Zeit verbraucht. So, und jetzt?
 
Der Taskmanager und der Resourcenmonitor sagt Dir doch ganz genau, welcher Task die Last erzeugt. Gegebenenfalls den Button, Prozesse aller Benutzer anzeigen, klicken.
 
Falls das ganze eine frische Win7 Installation ist bei der du danach VBox installiert hast, dann ist höchstwahrscheinlich der "svchost.exe" oder "TrustedInstaller"-Prozess der Übeltäter.
Irgendwann in der Vergangenheit hat Microsoft die Updatesuche für Win7 von deren Servern auf die lokale Maschine verlagert - und das frisst temporär CPU-Ressourcen.
Ich kenne das von meinem älteren Lenovo Notebook welches nimmer Win8/10 updatefähig ist (keine Win10 AMD-Grakatreiber für die HD4225 verfügbar!)...nach dem Hochfahren ist einer der kerne praktisch für halbe bis 3/4-Stunde ausgelastet und ich sehe 50% Last im Idle..

Man sieht das wenn man sich, wie oben schon vom Vorposter erwähnt, die Prozesse aller Benutzer anschaut (also auch Systemeigene Prozesse).
Unter Ubuntu kann ich das (Konsolen)Tool - htop (nicht verwechseln mit top) empfehlen wenn man wissen will wo die System-Ressourcen verwendet werden...
 
Ok, die Last unter Win7 wird durch einen von svchost.exe umhüllten Prozess verursacht:

VirtualBox-mit-Ubuntu-Gast-high-CPU-load.png

Sobald ich meine Ubuntu-VM starte, dauert es keine 30sec. und dann geht bei diesem svchost.exe die Last auf ca. 10%. Sobald ich die VM wieder beende, sinkt die Last des Prozesses auf (fast) 0%. Hilft das nun jemand und kann mir sagen, was hier passiert?
 
In die Eigenschaften gehen unter den Reiter Threads. Ggf. stehts dort direkt als Dienst oder du kannst es aus dem Modulnamen ableiten.
 
da_reini schrieb:
wenn die cpu im leerlauf ausgelastet ist, hat das meiner meinung nach nichts mit stromsparmechanismen zu tun. Da stimmt einfach etwas an der installation nicht. Guest Additions sind installiert?

faust@ubuntu-VirtualBox:/opt/VBoxGuestAdditions-4.3.20$ lsmod | grep -i vbox

vboxsf 42561 0
vboxvideo 12550 1
vboxguest 219483 8 vboxsf
drm 197641 2 vboxvideo
Sieht so aus, als ob die Guest Additions aktiv sind ;)

Yuuri schrieb:
In die Eigenschaften gehen unter den Reiter Threads. Ggf. stehts dort direkt als Dienst oder du kannst es aus dem Modulnamen ableiten.

Nö, da sehe ich nur, dass ca. 10-15 Threads in diesem Prozess am Laufen sind, die jeweils über die ntdll.dll und dort die Methode RtlUserThreadStart gestartet werden. Die konkreten Nutzdaten sieht man nicht...

Weitere Ideen, um dem Phänomen auf die Schliche zu kommen?
 
Gut, drück mal bitte auf die Spalte Process bis die Baumstruktur kommt und guck nach, ob da ein Unterprozess die Last verursacht. Lad auch mal nen Screen vom Reiter Threads hoch. Ggf auch mal auf Stack klicken, ggf. ist in der Liste eine auffällige DLL, die bspw. zu VirtualBox gehört.

Klick auch mal auf File -> Show Details for All Processes. Sieht so aus als ob du den Process Explorer auch nicht mit Admin Rechten ausführst, ergo bekommst du viel weniger Einblick.
 
Hier der ProcessExplorer mit Admin-Rechten (ja, man sieht nun schon mehr :D - 11% Auslastung, die sich jedoch nicht auf die Sub-Prozesse erkennbar runterbrechen lässt):

VirtualBox-svchost.png

Und hier noch die Threads des Prozesses:

VirtualBox-threads-svchost.png
 
Gut, klick mal auf den Thread mit der höchsten Auslastung und dann drunter auf den Button Stack, evtl. stehen da DLLs drin, wo man Rückschlüsse auf irgendwas ziehen kann.

Ansonsten kannst du dir auch mal die Logs in %userprofile%\.VirtualBox ansehen, da könnte das Problem gar in Text stehen. ;)

Das Einfachste wäre aber wohl die Version zu wechseln und zu schauen, ob das Problem da auch auftritt. Ggf. ist es nur ein Treiberkonflikt in Virtual Box selbst oder gar mit einem deiner Peripherie, welche sich nicht verträgt oder der Dienst selbst hat in der Version nen Schuss weg.

Ggf. auf nen anderen Hypervisor wechseln (VMWare Player, Hyper-V - für Windows 7 [1] [2]), falls das Problem trotz Versionswechsel noch vorhanden sein sollte.
 
Yuuri schrieb:
Das Einfachste wäre aber wohl die Version zu wechseln und zu schauen, ob das Problem da auch auftritt. Ggf. ist es nur ein Treiberkonflikt in Virtual Box selbst oder gar mit einem deiner Peripherie, welche sich nicht verträgt oder der Dienst selbst hat in der Version nen Schuss weg.

Ich hab gerade VirtualBox 5.0.20 ausprobiert, also die neueste Version, die man bekommen kann. Das Problem ist jedoch immer noch da. Ich hab jetzt keine Lust mehr auf Fehlersuche und probiere mal VMWare.

Yuuri schrieb:
Ggf. auf nen anderen Hypervisor wechseln (VMWare Player)

3 Fragen dazu:

1) Was kann der VMWarePlayer mehr/weniger als VirtualBox? Ich hab da irgendwas im Hinterkopf, dass man keine Snapshots der VM machen kann. Stimmt das? Sonst noch was?

2) Kann ich meine beiden Ubuntus einfach in VMWare starten oder muss ich nun die Images konvertieren... oder sonst irgendwas?

3) Kann ich VirtualBox trotzdem noch installiert lassen oder besser deinstallieren? Allein, wenn ich an die virtuellen Netzwerktreiber denke... gibt das keinen Konflikt?
 
1. VMWare hab ich auf meinem Server laufen und da funktionert es quasi genauso. Die Sache mit den Netzwerken ist bei VMWare imho bedeutend besser gelöst, da für alles (Bridge, NAT, Host-only, ...) ein eigener Netzwerkadapter installiert wird. Auch die Konfiguration ist bei VMWare bedeutend besser und übersichtlicher gelöst.

Als ich letztens ein Problem hatte und kurz mit VirtualBox gegenprüfen wollte, gelang es mir auf Anhieb nicht ein NAT-Netz aufzusetzen. Von daher ging ich einfach dem Problem bei VMWare weiter nach und habs dann dort gelöst. War mir sowieso lieber, da dort bereits alles eingerichtet war und die VMs natürlich schon "ein Weilchen" liefen und ich somit nichts konvertieren musste.

Snapshots selbst nutze ich nicht, kann dir ergo nicht viel dazu sagen. Ne kurze Suche bei Google bestätigt aber deine Bedenken gegenüber dem kostenlosen Player. Das Feature gibts wohl erst ab der Workstation.

2. Images konvertieren musst du wohl oder übel. In VirtualBox scheint dies aber einfach zu gehen, wenn du die Festplatte von der VM entfernst und dann in den Manager für virtuelle Medien gehst. Dort auf das Image gehen, kopieren und VMDK auswählen.

3. Installiert lassen kannst du es natürlich. Problematisch wird es nur wenn du Hyper-V installierst bzw. die Rolle aktiv hast, denn dann streiken VMWare und VirtualBox komplett. Ohne Hyper-V sollte es aber keine Probleme geben, wobei ich selbst beide Lösungen noch nicht parallel laufen hatte (nutze seit Win 8 inzwischen nur noch Hyper-V).
 
Sodele: VMWare Player runtergeladen und installiert, Disk-Image konvertiert, VMs im Player eingerichtet... läuft! Und das beste: Es wird keine CPU-Grundlast in Höhe von ca. 10-20% erzeugt. Perfekt!

Danke @Yuuri!
 
Zurück
Oben