Der Martin: Programm extrem langsam - Grund herausfinden

Beitrag lesen

Hi,

Folgende Beobachtungen ergeben sich:

  • Vor dem Start liegt die CPU-Auslastung bei 99% beim Leerlaufprozess, die 4 GB RAM werden kaum beansprucht.

das ist zu erwarten.

  • Beim Start braucht die EXE-Datei der JTL-Wawi kurzeitig 99% der CPU-Leistung. Außerdem benötigt der Prozess svchost (Benutzer System) immer wieder eine große CPU-Leistung. Die 4 GB RAM werden kaum beansprucht.

Während der Start- und Initialisierungsphase eines Programms ist es völlig normal, dass es kurzzeitig mal annähernd 100% CPU beansprucht. Aber sobald das Programm gestartet ist und sich eigentlich nur noch langweilt, sollte dessen CPU-Last auf niedrige Werte zurückgehen, meist im einstelligen Prozentbereich.

  • Nach dem Start benötigt die EXE-Datei der JTL-Wawi kaum noch CPU-Leistung. Der Prozess svchost benötigt weiterhin 99% der CPU-Leistung. Die 4 GB RAM werden kaum beansprucht.

So. Jetzt wäre interessant, welcher Dienst von dieser größenwahnsinnigen svchost-Instanz bedient wird. Das findet man aber auch raus, indem man die betreffende Zeile in der Prozess-Liste mit der rechten Maustaste anklickt und aus dem Kontextmenü "Dienst anzeigen" (oder so ähnlich) auswählt. Die Anzeige wechselt dann automatisch zum Dienste-Tab, und die Dienste, die zur aktuell ausgewählten svchost-Instanz gehören, sind markiert.

  • Nach dem Beenden der JTL-Wawi über das Menü beansprucht der Prozess svchost nach wie vor 99% der CPU-Leistung. Die 4 GB RAM werden kaum beansprucht.

Es scheint also, dass das Programm irgendeinen Hintergrundprozess startet, ihn aber nicht beendet.

Irgendwas scheint mit der CPU nicht zu passen. Standardmäßig wurde der virtuellen Maschine nur einer der acht Prozessorkerne zugeordnet (demnach nur 1/8 von 4 GHz = 500 MHz).

Die Rechnung ist falsch: Auf einer 4GHz-Multicore-CPU läuft jeder Kern mit 4GHz, wenn er nicht gerade wegen niedriger Auslastung heruntergetaktet wird. Außerdem ist die Zuordnung nicht so direkt.

Habt Ihr eine Ahnung wo die Ursache gelegen haben kann. Bin da jetzt schon neugierig auch wenn jetzt alles flüssig läuft.

Nein, kann ich auch nicht wirklich erklären.

Dann noch eine andere Frage:

Sind die CPU-Kerne und RAM-Anteile die dem Gastsystem zugeordnet wurden:

  • grundsätzlich nichtmehr für das Wirtsystem vorhanden?

Beim RAM ist das tatsächlich so; wenn für das Gastsystem 4GB RAM reserviert werden, stehen die dem Hostsystem nicht mehr zur Verfügung. Die RAM-Zuteilung ist also exklusiv.
Bei der CPU ist das anders, denn es handelt sich ja nur um eine virtuelle ("simulierte") CPU, und VirtualBox nimmt am ganz normalen Multitasking des Hostsystems teil. Die CPU-Leistung wird also bedarfsorientiert zwischen Host- und Gastsystem aufgeteilt.

  • nur dann für das Wirtsystem vorhanden, wenn das Gastsystem nicht geöffnet ist und in Virtual-Box den Status "ausgeschaltet" hat?
  • nur dann für das Wirtsystem vorhanden, wenn das Gastsystem nicht geöffnet ist und in Virtual-Box den Status "gesichert hat"?

In beiden Fällen belegt das Gastsystem keine Ressourcen des Hostsystems (außer Festplattenplatz), denn es ist ja ausgeschaltet, inaktiv.

  • auch dann für das Wirtsystem vorhanden, wenn das Gastsystem geöffnet ist, die dem Gastsystem zugeordneten CPU-Kerne und RAM-Anteile aber gerade nicht benötigt werden?

Nochmal: Es ist nicht so, dass dem Gastsystem soundsoviele CPU-Kerne zugeteilt werden, sondern es wird eine n-Core-CPU nachgebildet. Das Multitasking des Hostsystems funktioniert ganz normal weiter, und kann über alle CPU-Kerne verfügen. Die Aufteilung der CPU-Leistung zwischen Host und Gast erfolgt im Zeitmultiplex, und zwar je nach Bedarf.

So long,
 Martin

--
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy