Karl Heinz: Programm extrem langsam - Grund herausfinden

Hallo,

auf einem Linux System habe ich eine Virtual Box mit Windows 7 eingerichtet.

Das Gesamtsystem hat folgende Leistungsmerkmale:

  • AMD FX 8350 Eigth-Core Prozessor 4,00 GHz
  • Arbeitsspeicher 32 GB
  • Festplatte 1 = 128 GB SSD
  • Festplatte 2 = 2 TB Sata

Der Virtual-Box mit Windows 7 habe ich 4 GB Arbeitsspeicher zugewiesen.

Beide Systeme (das Linux Wirtsystem und das Windows 7 Virtual Box Gastsystem sind frisch installiert).

Auf dem Virtual-Box Windows 7 System habe ich die Warenwirtschaft JTL-Wawi installiert. Die JTL-Wawi arbeitet basierend auf einer Microsoft SQL 2014 Express Datenbank.

Funktioniert soweit alles tadellos, nur das die Nutzung der JTL-Wawi extrem langsam und träge ist. Das Programm reagiert manchmal 20 Sekunden oder mehr nicht auf Klicks mit der Maus. Teilweise wird in der Titelleiste des Programms sogar „keine Rückmeldung“ angezeigt.

Das Windows 7 System läuft (mal abgesehen von der Wawi) relativ flüssig.

Woran kann es liegen, dass die Warenwirtschaft JTL-Wawi so langsam und träge läuft bzw. wie kann ich herausfinden, was die Ursache für die langsame Wawi ist?

  1. Hi

    auf einem Linux System habe ich eine Virtual Box mit Windows 7 eingerichtet.

    Das Gesamtsystem hat folgende Leistungsmerkmale:

    • AMD FX 8350 Eigth-Core Prozessor 4,00 GHz
    • Arbeitsspeicher 32 GB
    • Festplatte 1 = 128 GB SSD
    • Festplatte 2 = 2 TB Sata

    das ist ja schon recht üppig.

    Funktioniert soweit alles tadellos, nur das die Nutzung der JTL-Wawi extrem langsam und träge ist. Das Programm reagiert manchmal 20 Sekunden oder mehr nicht auf Klicks mit der Maus. Teilweise wird in der Titelleiste des Programms sogar „keine Rückmeldung“ angezeigt.

    Das Windows 7 System läuft (mal abgesehen von der Wawi) relativ flüssig.

    Woran kann es liegen, dass die Warenwirtschaft JTL-Wawi so langsam und träge läuft bzw. wie kann ich herausfinden, was die Ursache für die langsame Wawi ist?

    Meine erste Station wäre mal der Windows-Taskmanager. Dort sollte sich zumindest der Prozess finden lassen, der die hohe Systemlast verursacht. Achtung, auf jeden Fall das Häkchen bei "Prozesse aller Benutzer anzeigen", damit auch die Systemprozesse mit gelistet werden.

    Es ist nämlich keineswegs gesagt, dass JTL der Übeltäter ist; es könnte auch einer der diversen gut gemeinten, aber oft bremsenden Dienste von Windows selbst sein.

    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
    1. Schau im Taskmanager auch auf die Spalte Seitenfehler. Die musst Du ggf. über "Ansicht" / "Spalten hinzufügen" erstmal herbeiholen. Wenn da Prozesse bei sind, die ständig viele Seitenfehler produzieren, hat die VM zu wenig Speicher. Das siehst Du auch auf dem "Leistung" Tab, unter "Physikalischer Speicher". Da darf als "Frei" gerne wenig angegeben sein, aber wenn auch unter "Verfügbar" wenig bis nichts ist, sieht es nach Speicher-Engpass aus und du solltest mal probehalber den RAM der VM verdoppeln.

      MS SQL Server genehmigt sich gern einen großzügigen Schluck aus der Speicherpulle, und da JTL ein .net Programm ist, braucht das - so wie auch ein Java-Programm - einen Menge Platz für seine Objekthalde. Und wenn ich mir den Funktionsumfang so anschaue, dürften auf dieser Halte eine MENGE Objekte herumliegen :)

      Gruß Rolf

      1. RAM ist satt und genug da, die 4GB werden zu maximal 2GB in Anspruch genommen.

        Die CPU ist nach dem Start der JTL-Wawi unter Voll-Last (100%).

        Ordne ich der virtuellen Maschine vier statt einen der Acht CPU-Kerne zu so kommt die CPU-Auslastung nurnoch auf 25% bei gestartetr JTL-Wawi.

    2. Hallo,

      erstmal vielen Dank für die prima Unterstützung!

      Nachfolgend mein Vorgehen zu Identifizierung der Ursache:

      Task-Manager vor dem Start, beim Start, nach dem Starten und nach dem Beenden von JTL-Wawi beobachtet.

      Folgende Beobachtungen ergeben sich:

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

      • 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.

      • 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.

      • 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.

      Fazit:

      Die RAM Größe scheint nicht das Problem zu sein, die Vermutung wird auch dadurch bestätigt, dass ich die JTL-Wawi lange auf einen Rechner installiert hatte der nur 4 GB RAM hat. Hier ist die JTL-Wawi flüssig gelaufen.

      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). Ich bin nun hergegangen und habe der virtuellen Maschine vier der acht Prozessorkerne zugeordnet und anschließend neu gestartet.

      Ergebnis:

      Die JTL-Wawi läuft flüssig.

      Ich dachte nun eigentlich ich hätte den Fehler identifiziert, trotzdem hab ich eine Gegenprobe gemacht, sprich wieder zurückgestellt auf nur einen Prozessorkern statt vier Prozessorkernen.

      Ergebnis nach Rückstellung auf einen Prozessor-Kern:

      Nach einem Neustart läuft die JTL-Wawi trotzdem flüssig, was ich nicht nachvollziehen kann, müsste doch eigentlich, aufgrund des einen Prozessorkerns, wieder langsam und träge laufen.

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

      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?
      • 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"?
      • 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?
      1. Hallo Karl Heinz,

        svchost ist ein unangenehmer Geselle für Diagnosen, weil das ein generisches Stück EXE ist, um Services zu hosten, die keinen eigenen Hostprozess mitbringen. Ein SVCHOST kann viele Dienste hosten. Im Taskmanager kannst Du unter "Prozesse" auf den hochtourig drehenden SVCHOST mit der rechten Maustaste klicken und dann im Kontextmenü "Zu Dienst(en) wechseln" sagen. Dann kommst Du auf den Dienste-Tab und dort sind alle Dienste markiert, die in diesem SVCHOST laufen. Mit Pech ist es einer der System-SVCHosts, die gerne mal 10 oder mehr Dienste in einem Prozess laufen lassen.

        Wenn das Problem jetzt aber weg ist, dann könnte es ein CLR Optimizer gewesen sein (obwohl die eigentlich nicht die Vordergrundperformance grillen sollten), der WAWI sozusagen einmal durchcompiliert hat und das Ergebnis in den GAC (Global Assembly Cache) gelegt hat.

        Möglichkeit 2 wäre der Indexdienst von Windows, der den Suchindex aufgebaut hat und jetzt fertig ist damit.

        Wie die Zuteilung von RAM und Kernen sich auf das Wirtssystem auswirkt - hm, keine Ahnung. Ich habe schon lange nicht mehr mit einer selbstgehosteten VM gearbeitet, und die VMs, die ich auf der Arbeit benutze, sehe ich nur von innen. Von daher: sorry, kann ich nicht sagen. Ich könnte was vermuten, das ist aber was für die Adventszeit (Spekulatius)...

        Gruß Rolf

      2. 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
          • 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.

          Anmerkung: Ich habe festgestellt, dass die Auslastung der svchost-Instanz von 99% auch unabhängig von der JTL-Wawi auftritt. Die Auslastung tritt z.B. auch dann auf, wenn ich ein anderes Programm wie z.B. Firefox starte. Erstaulicherweise bleibt die 99% Auslastung der svchost-Instanz auch dann bestehen wenn ich das Progamm (habs mit JTL-Wawi und Firefox getestet) wieder beende.

          Nachfolgend mal diese Dienste die zur Lastfressenden svchost-Instanz gehören:

          • wuauserv (Windows Update)
          • wingmt (Windows Verwaltungsinstrumentation)
          • themes (Designs)
          • shellhwdetectin (Shellhardwareerkennung)
          • sens (Benachrichtigunsdienst für Systemereignisse)
          • schedule (Aufgabenplanung)
          • profsvc (Benutzerprofildienst)
          • lanmanserver (server)
          • iphlpsvc (IP-Hilfsdienst)
          • browser (Computerbrowser)
          • appinfo (Anwendungsinformation)
          • aelookupsvc (Anwendungserfahrung)

          Kann ich irgendwie herausfinden, welche dieser ganzen Dienste wieviel CPU-Last in Anspruch nimmt umd damit den Übeltäter zu identifizieren?

          Was mich in diesem Kontext etwas verwirrt:

          Angenommen ich starte das Programm Firefox, dann wird mir dieses unter der Registerkarte Anwendungen aufgeführt. Des weiteren werden mir die auf Firefox basierenden Prozesse unter der Registerkarte Prozesse aufgeführt. Klicke ich nun rechts auf den Firefox-Prozess hätte ich im Kontextmenü erwartet, dass dort "Programme anzeigen" oder "Anwendungen anzeigen" auftaucht, da Firefox ja ein Programm und kein Dienst ist. Es wird allerdings "Dienste anzeigen" einbelendet, dass verstehe ich. Dienste unterscheiden sich von Programmen doch dahingehend, dass sie im Hintergrund laufen. Firefox läuft allerdings nicht im Hintergrund, dass bedeutet Firefox ist kein Dienst sondern ein Programm bzw. eine Anwendung damit müsste im Kontextmenü doch eigentlich "Anwendung anzeigen" oder "Programm anzeigen" auftauchen und nicht "Dienst anzeigen". Hab ich hier etwas grundsätzliches falsch verstanden?

          • 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.

          Seltsamerweise tritt dieses Phänomen auch dann auf wenn ich andere Programme wie z.B. den Firefox starte und wieder beende, damit kann ich die JTL-Wawi ja als Übeltäter ausschließen, da dieser Hintergrundprozess ja auch durch Firefox gestartet aber nicht wieder beendet wird. Vielleicht liege ich ja mit der Vermutung das dieser Prozess durch ein Programm ausgelöst wird falsch, vielleicht wird dieser Prozess (z.B. ein Windows Update) ja unabhängig von irgendwelchen Programmen gestartet, kann das sein?

          • 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.

          Nochmal in eigenen Worten:

          Der RAM den ich dem Gastsystem zuordne steht, sobald das Gastsystem gestartet wurde, nichtmehr für das Hostsystem zur Verfügung auch dann, wenn er nicht vom Gastsystem benötigt wird. Umgekehrt genauso, das Hostsystem kann niemals den RAM vom Gastsystem nutzen, auch wenn das Gastsystem den RAM gerade nicht benötigt. Ist das so korrekt?

          Ordne ich dem Gastsystem vier der acht CPU-Kerne zu so bedeutet das, dass auf dem Gastsystem eine CPU mit vier Kernen und damit der halben Rechnenleistung wie auf dem Hostsystem simuliert wird. Dem Hostsystem steht nach wie vor die Leistung aller acht Prozessor-Kerne zur Verfügung, wobei dem Hostsystem die Leistung durch die virtuelle CPU des Gastsystems geklaut werden kann. Das Gastsystem kann allerdings maximal soviel Leistung vom Hostsystem klauen wie ihm Prozessorkerne zugeordnet sind. Im Beispiel habe ich dem Gastsystem vier Prozessorkerne zugeordnet, damit kann das Gastsystem maximal die Hälfte der Leistung vom Hostsystem klauen. Umkekehrt ist es so, dass dann, wenn das Gastsystem nur die Leistung von zwei CPU-Kernen benötigt, das Hostsystem auf die Leistung der zwei nicht benötigten Kerne des Gastsystem zugreifen kann. Wenn das so richtig erklärt ist, dann wäre es doch eigenhtlich am besten dem Gastsystem alle acht Kerne zuzuorden, wird die Leistung der acht Kernen nicht benötigt, so kann das Hostsystem ebenfalls auf die Leistung aller acht Kerne zugreifen, damit können sowohl das Hostsystem als auch das Gastsystem theoretisch auf die volle Leistung aller acht Kerne zugreifen, natürlich nicht gleichzeitig aber wechselseitig. Hab ich da so richtig verstanden?

          Nachdem ich mich jetzt etwas detailierter mit CPUs beschäftigt habe bin ich mir grade ziemlich unsicher ob es blödsinnig war mir einen Achtkernprozessor von AMD zu kaufen. Ich lese immer wieder, dass die meiste Software keine Acht Kerne unterstützt (in der Praxis höchstens vier). Das bedeutet mindest vier der acht Kerne liegen brach, weil die Software maximal vier der Acht Kerne gleichzeitig ansprechen kann. Hab ich mit der Anschaffung der Achtkern CPU Mist gebaut?

          Was ich ebenfalls nicht nachvollziehen kann ist das eine CPU mit vier Kernen die jeweils mit 3,5 GHz getaktet sind um die 600 Euro kostet (Intel Xeon E3-1275 v3) eine CPU mit acht Kernen die jeweils mit 4,4 GHz getaktet sind nur um die 200 Euro (AMD FX-9370). Die Intel CPU hat viermal 3,5 GHz sprich 14,00 GHz, die ADM CPU achtmal 4,4 GHz sprich 35,2 GHz. Warum kosten 14,00 GHz Leistung dreimal soviel wie 35,2 GHz Leistung?

          1. Moin,

            Anmerkung: Ich habe festgestellt, dass die Auslastung der svchost-Instanz von 99% auch unabhängig von der JTL-Wawi auftritt. Die Auslastung tritt z.B. auch dann auf, wenn ich ein anderes Programm wie z.B. Firefox starte. Erstaulicherweise bleibt die 99% Auslastung der svchost-Instanz auch dann bestehen wenn ich das Progamm (habs mit JTL-Wawi und Firefox getestet) wieder beende.

            also ist der Zusammenhang vermutlich gar keiner, sondern das plötzliche Auftreten der hohen CPU-Last könnte zufällig bedingt sein.

            Nachfolgend mal diese Dienste die zur Lastfressenden svchost-Instanz gehören:

            • wuauserv (Windows Update)
            • wingmt (Windows Verwaltungsinstrumentation)
            • themes (Designs)
            • shellhwdetectin (Shellhardwareerkennung)
            • sens (Benachrichtigunsdienst für Systemereignisse)
            • schedule (Aufgabenplanung)
            • profsvc (Benutzerprofildienst)
            • lanmanserver (server)
            • iphlpsvc (IP-Hilfsdienst)
            • browser (Computerbrowser)
            • appinfo (Anwendungsinformation)
            • aelookupsvc (Anwendungserfahrung)

            Kann ich irgendwie herausfinden, welche dieser ganzen Dienste wieviel CPU-Last in Anspruch nimmt umd damit den Übeltäter zu identifizieren?

            Nicct mit Windows-Bordmitteln. Es gibt als Diagnose-Tool in der Richtung noch den Process Explorer, der kann alle diese Betrachtungen AFAIK sogar bis auf Thread-Ebene herunterbrechen (ein Thread ist in dem Kontext ein Sub-Prozess innerhalb eines Programms).
            Unter den Diensten, die du aufzählst, würde ich am ehesten noch Windows Update als Übeltäter vermuten - ich betone: vermuten. Aber eventuell auch der Themes-Dienst - hast du mal versucht, das Design auf das weniger ressourcenhungrige "Windows Klassisch" umzustellen?

            Angenommen ich starte das Programm Firefox, dann wird mir dieses unter der Registerkarte Anwendungen aufgeführt. Des weiteren werden mir die auf Firefox basierenden Prozesse unter der Registerkarte Prozesse aufgeführt. Klicke ich nun rechts auf den Firefox-Prozess hätte ich im Kontextmenü erwartet, dass dort "Programme anzeigen" oder "Anwendungen anzeigen" auftaucht, da Firefox ja ein Programm und kein Dienst ist. Es wird allerdings "Dienste anzeigen" einbelendet, dass verstehe ich. Dienste unterscheiden sich von Programmen doch dahingehend, dass sie im Hintergrund laufen. Firefox läuft allerdings nicht im Hintergrund, dass bedeutet Firefox ist kein Dienst sondern ein Programm bzw. eine Anwendung damit müsste im Kontextmenü doch eigentlich "Anwendung anzeigen" oder "Programm anzeigen" auftauchen und nicht "Dienst anzeigen". Hab ich hier etwas grundsätzliches falsch verstanden?

            Nein, ich glaube, du siehst das schon richtig. Das halt eich eher für eine Oberflächlichkeit von Microsoft: Der Menüpunkt Dienste anzeigen sollte eigentlich bei Prozessen, die keine Dienste sind, ausgeblendet oder zumindest deaktiviert sein, weil er da keinen Sinn ergibt.

            vielleicht wird dieser Prozess (z.B. ein Windows Update) ja unabhängig von irgendwelchen Programmen gestartet, kann das sein?

            Ja, kann sein.

            Nochmal in eigenen Worten:

            Der RAM den ich dem Gastsystem zuordne steht, sobald das Gastsystem gestartet wurde, nichtmehr für das Hostsystem zur Verfügung auch dann, wenn er nicht vom Gastsystem benötigt wird. Umgekehrt genauso, das Hostsystem kann niemals den RAM vom Gastsystem nutzen, auch wenn das Gastsystem den RAM gerade nicht benötigt. Ist das so korrekt?

            Korrekt.

            Ordne ich dem Gastsystem vier der acht CPU-Kerne zu so bedeutet das, dass auf dem Gastsystem eine CPU mit vier Kernen und damit der halben Rechnenleistung wie auf dem Hostsystem simuliert wird. Dem Hostsystem steht nach wie vor die Leistung aller acht Prozessor-Kerne zur Verfügung, wobei dem Hostsystem die Leistung durch die virtuelle CPU des Gastsystems geklaut werden kann. Das Gastsystem kann allerdings maximal soviel Leistung vom Hostsystem klauen wie ihm Prozessorkerne zugeordnet sind. Im Beispiel habe ich dem Gastsystem vier Prozessorkerne zugeordnet, damit kann das Gastsystem maximal die Hälfte der Leistung vom Hostsystem klauen. Umkekehrt ist es so, dass dann, wenn das Gastsystem nur die Leistung von zwei CPU-Kernen benötigt, das Hostsystem auf die Leistung der zwei nicht benötigten Kerne des Gastsystem zugreifen kann. Wenn das so richtig erklärt ist, dann wäre es doch eigenhtlich am besten dem Gastsystem alle acht Kerne zuzuorden, wird die Leistung der acht Kernen nicht benötigt, so kann das Hostsystem ebenfalls auf die Leistung aller acht Kerne zugreifen, damit können sowohl das Hostsystem als auch das Gastsystem theoretisch auf die volle Leistung aller acht Kerne zugreifen, natürlich nicht gleichzeitig aber wechselseitig. Hab ich da so richtig verstanden?

            Ja. Vermutlich haben die Programmierer von VirtualBox den Verwaltungsaufwand von sich aus begrenzt und gemeint, vier Kerne seien nun wirklich genug.

            Übrigens stammt VirtualBox ursprünglich(!) von einer kleinen Software-Schmiede namens Innotek, die ihren Sitz just in dem Ort hatte(!), in dem auch ich aufgewachsen bin und gut zwanzig Jahre meines Lebens verbracht habe. :-)

            Nachdem ich mich jetzt etwas detailierter mit CPUs beschäftigt habe bin ich mir grade ziemlich unsicher ob es blödsinnig war mir einen Achtkernprozessor von AMD zu kaufen. Ich lese immer wieder, dass die meiste Software keine Acht Kerne unterstützt (in der Praxis höchstens vier).

            Muss sie auch nicht explizit. Es ist Sache des Betriebssystems (des Schedulers, um genau zu sein), die verfügbaren CPUs oder CPU-Kerne den laufenden Prozessen zuzuordnen. Auf eine Acht-Kern-CPU könnten also acht Prozesse echt gleichzeitig laufen (anstatt im Zeitmultiplex), von denen jeder für sich keine Ahnung von Mehrkern-CPUs hat. Du hast also auf jeden Fall einen Vorteil.

            Das bedeutet mindest vier der acht Kerne liegen brach, weil die Software maximal vier der Acht Kerne gleichzeitig ansprechen kann.

            Nein, wenn dein Betriebssystm die acht Kerne verwalten kann ... das weiß ich aber nicht, weil mich diese Größenordnungen noch nicht betroffen haben.

            Was ich ebenfalls nicht nachvollziehen kann ist das eine CPU mit vier Kernen die jeweils mit 3,5 GHz getaktet sind um die 600 Euro kostet (Intel Xeon E3-1275 v3) eine CPU mit acht Kernen die jeweils mit 4,4 GHz getaktet sind nur um die 200 Euro (AMD FX-9370). Die Intel CPU hat viermal 3,5 GHz sprich 14,00 GHz, die ADM CPU achtmal 4,4 GHz sprich 35,2 GHz. Warum kosten 14,00 GHz Leistung dreimal soviel wie 35,2 GHz Leistung?

            Das ist vermutlich nicht nur eine technische, sondern eher eine politische Entscheidung, wobei man sich durch die reine Taktfrequenz-Angabe nicht täuschen lassne darf. Je nach Modell kann eine CPU mit etwas geringerer Taktfrequenz sogar leistungfähiger sein als eine mit 25% mehr Taktfrequenz.

            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
            1. Hallo

              Nachdem ich mich jetzt etwas detailierter mit CPUs beschäftigt habe bin ich mir grade ziemlich unsicher ob es blödsinnig war mir einen Achtkernprozessor von AMD zu kaufen. Ich lese immer wieder, dass die meiste Software keine Acht Kerne unterstützt (in der Praxis höchstens vier).

              Muss sie auch nicht explizit. Es ist Sache des Betriebssystems (des Schedulers, um genau zu sein), die verfügbaren CPUs oder CPU-Kerne den laufenden Prozessen zuzuordnen. Auf eine Acht-Kern-CPU könnten also acht Prozesse echt gleichzeitig laufen (anstatt im Zeitmultiplex), von denen jeder für sich keine Ahnung von Mehrkern-CPUs hat. Du hast also auf jeden Fall einen Vorteil.

              Das sollte mMn viel öfter betont werden. Auch wenn ein Programm nicht alle Kerne eines Prozessors auslastet – egal, ob es daran liegt, dass es das nicht kann oder vielleicht auch nicht braucht –, die verbleibenden Kerne stehen anderen Programmen zur Verfügung. So hätte bestimmt auch das Betriebssystem Interesse an mindestens einem Kern, um eigene Operationen durchführen zu können. Man hat ja typischerweise mehrere Programme laufen, also kann es nicht „zu viele“ Reserven geben.

              Was ich ebenfalls nicht nachvollziehen kann ist das eine CPU mit vier Kernen die jeweils mit 3,5 GHz getaktet sind um die 600 Euro kostet (Intel Xeon E3-1275 v3) eine CPU mit acht Kernen die jeweils mit 4,4 GHz getaktet sind nur um die 200 Euro (AMD FX-9370). …

              Das ist vermutlich nicht nur eine technische, sondern eher eine politische Entscheidung, wobei man sich durch die reine Taktfrequenz-Angabe nicht täuschen lassne darf. Je nach Modell kann eine CPU mit etwas geringerer Taktfrequenz sogar leistungfähiger sein als eine mit 25% mehr Taktfrequenz.

              Verschiedene Konstruktionen sind halt verschieden leistungsfähig.

              Tschö, Auge

              --
              Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
              Wolfgang Schneidewind *prust*
              1. Hallo,

                da hast Du aber genau DEN svchost als Übeltäter, auf dem das halbe Windows aufgebaut ist :/

                Ob es Windows Update ist, kann man herausfinden in dem man den Dienst probehalber mal disabled (nachher enablen nicht vergessen :) ). Windows Update kann sich durchaus schonmal als Ressourcenschwein herausstellen, insbesondere wenn irgendwas seinen Ressourcen defekt ist. Googlen hat mir folgende Seite mit Tips ausgeworfen:

                http://www.wintips.org/how-to-fix-svchost-exe-netsvcs-memory-leak-or-high-cpu-usage-problems/

                Zu den CPU Preisen: Du bezahlst nicht nur für die Anzahl Kerne oder MIPSe, sondern auch für geringe Watt pro MIPS (95W TDP beim Xeon, 220W bei AMD FX 9370) oder schnelle Anbindung der CPU ans System, da gibt es große Unterschiede. Und gerade ein Xeon als Serverprozessor ist extrateuer, was an dem I im Herstellernamen liegt, aber auch an zusätzlichen Verwaltungsfunktionen, die ein Desktop-Prozessor wie der AMD nicht hat. Und der Xeon hatte laut cpubenchmark.net auch im März einen immensen Preispeak. Von daher: Geiz ist geil gilt nicht ganz.

                Gruß Rolf

            2. Anmerkung: Ich habe festgestellt, dass die Auslastung der svchost-Instanz von 99% auch unabhängig von der JTL-Wawi auftritt. Die Auslastung tritt z.B. auch dann auf, wenn ich ein anderes Programm wie z.B. Firefox starte. Erstaulicherweise bleibt die 99% Auslastung der svchost-Instanz auch dann bestehen wenn ich das Progamm (habs mit JTL-Wawi und Firefox getestet) wieder beende.

              also ist der Zusammenhang vermutlich gar keiner, sondern das plötzliche Auftreten der hohen CPU-Last könnte zufällig bedingt sein.

              Nachfolgend mal diese Dienste die zur Lastfressenden svchost-Instanz gehören:

              • wuauserv (Windows Update)
              • wingmt (Windows Verwaltungsinstrumentation)
              • themes (Designs)
              • shellhwdetectin (Shellhardwareerkennung)
              • sens (Benachrichtigunsdienst für Systemereignisse)
              • schedule (Aufgabenplanung)
              • profsvc (Benutzerprofildienst)
              • lanmanserver (server)
              • iphlpsvc (IP-Hilfsdienst)
              • browser (Computerbrowser)
              • appinfo (Anwendungsinformation)
              • aelookupsvc (Anwendungserfahrung)

              Kann ich irgendwie herausfinden, welche dieser ganzen Dienste wieviel CPU-Last in Anspruch nimmt umd damit den Übeltäter zu identifizieren?

              Nicct mit Windows-Bordmitteln. Es gibt als Diagnose-Tool in der Richtung noch den Process Explorer, der kann alle diese Betrachtungen AFAIK sogar bis auf Thread-Ebene herunterbrechen (ein Thread ist in dem Kontext ein Sub-Prozess innerhalb eines Programms).
              Unter den Diensten, die du aufzählst, würde ich am ehesten noch Windows Update als Übeltäter vermuten - ich betone: vermuten. Aber eventuell auch der Themes-Dienst - hast du mal versucht, das Design auf das weniger ressourcenhungrige "Windows Klassisch" umzustellen?

              Ich bin nun hergegangen und habe den Dienst „wuauserv – Windows Update“ gestoppt und zack der Prozess „svchost.exe“ braucht kaum noch CPU-Leistung.

              Anschließend habe ich den Dienst „wuauserv – Windows Update“ wieder gestartet. Nach dem Neustart des Dienstes braucht zunächst der Prozess „TrustedInstaller.exe“ für einige Sekunden die volle Leistung. Nach ein paar Sekunden braucht der Prozess „TrustedInstaller.exe“ keine Leistung mehr dafür benötigt der Prozess „svchost.exe“ aber wieder die volle CPU-Leistung.

              Nach dem ich nun die Ursache gefunden habe würde mich interessieren was ich tun kann, damit dieses Problem zukünftig nichtmehr auftritt. Den Dienst „wuauserv – Windows Update“ einfach gestoppt lassen ist ja auch nicht die ideale Lösung, da ich ja dann keine Windows Updates mehr erhalten würde.

              1. Hallo

                Ich bin nun hergegangen und habe den Dienst „wuauserv – Windows Update“ gestoppt und zack der Prozess „svchost.exe“ braucht kaum noch CPU-Leistung. …

                Nach dem ich nun die Ursache gefunden habe würde mich interessieren was ich tun kann, damit dieses Problem zukünftig nichtmehr auftritt. Den Dienst „wuauserv – Windows Update“ einfach gestoppt lassen ist ja auch nicht die ideale Lösung, da ich ja dann keine Windows Updates mehr erhalten würde.

                Eine kurze Recherche zu „wuauserv“ ergibt unter Anderem diese beiden Ergebnisse von Microsoft als Lesestoff.

                Tschö, Auge

                --
                Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                Wolfgang Schneidewind *prust*
          2. Tach,

            Was ich ebenfalls nicht nachvollziehen kann ist das eine CPU mit vier Kernen die jeweils mit 3,5 GHz getaktet sind um die 600 Euro kostet (Intel Xeon E3-1275 v3) eine CPU mit acht Kernen die jeweils mit 4,4 GHz getaktet sind nur um die 200 Euro (AMD FX-9370). Die Intel CPU hat viermal 3,5 GHz sprich 14,00 GHz, die ADM CPU achtmal 4,4 GHz sprich 35,2 GHz. Warum kosten 14,00 GHz Leistung dreimal soviel wie 35,2 GHz Leistung?

            GHz sind (spätestens) seit der Einführung des Pentium 4 (bzw. NetBurst) keine sinnvolle Vergleichsgröße über Prozessor-Core-Grenzen hinaus; Prozessoren mit unterschiedlich viel Kernen zu vergleichen ist auch eher wie die Äpfel mit den Birnen, wenn nicht genug parallele Threads laufen ist eine 2-Kern-CPU mit der gleichen Architektur, aber höherer Takt schneller als eine 4-Kern-CPU mit niedrigerer Taktrate. Und dann gibt es noch diverse weitere Features: Caches, integrierte GPU, Stromverbrauch, Speicheranbindung, Länge der Pipeline, Chipsatz, Befehlssatz, …

            mfg
            Woodfighter

            1. Hallo woodfighter,

              GHz sind (spätestens) seit der Einführung des Pentium 4 (bzw. NetBurst) keine sinnvolle Vergleichsgröße über Prozessor-Core-Grenzen hinaus; Prozessoren mit unterschiedlich viel Kernen zu vergleichen ist auch eher wie die Äpfel mit den Birnen, wenn nicht genug parallele Threads laufen ist eine 2-Kern-CPU mit der gleichen Architektur, aber höherer Takt schneller als eine 4-Kern-CPU mit niedrigerer Taktrate. Und dann gibt es noch diverse weitere Features: Caches, integrierte GPU, Stromverbrauch, Speicheranbindung, Länge der Pipeline, Chipsatz, Befehlssatz, …

              Davon ab können CPUs unterschiedliche Sachen unterschiedlich gut. Im Zweifel gilt also immer: Benchmarks fahren!

              LG,
              CK

  2. Hej Karl,

    Das Gesamtsystem hat folgende Leistungsmerkmale:

    • AMD FX 8350 Eigth-Core Prozessor 4,00 GHz
    • Arbeitsspeicher 32 GB
    • Festplatte 1 = 128 GB SSD
    • Festplatte 2 = 2 TB Sata

    Der Virtual-Box mit Windows 7 habe ich 4 GB Arbeitsspeicher zugewiesen.

    Schon mal probiert mit 16GB? Steht dazu ggfs was in den Systemanforderungen der Software (mindestens/empfohlen)?

    Kann man in der Virtual Box einer virtuellen Maschine noch andere Ressourcen händisch zuordnen (Prozessor-Kerne o. ä.)?

    Habe nur VMWare und Parallels-Erfahrungen, da kann man aber allerhand einstellen, außer RAM...

    Marc

    1. Hej Karl,Hallo,

      Kann man in der Virtual Box einer virtuellen Maschine noch andere Ressourcen händisch zuordnen (Prozessor-Kerne o. ä.)?

      man kann der VM wahlweise einen oder zwei Cores zur Verfügung stellen - genauer gesagt, man kann angeben, ob die virtuelle CPU ein Single- oder Double-Core ist. Mehr nicht.

      Andere Ressourcen, wie etwa Grafik- und Netzwerkkarten, kann man sehr viel detaillierter festlegen. Sogar am Host-System angeschlossene USB-Geräte kannman der VM exklusiv zuordnen. Hilft uns aber hier nicht weiter ...

      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
      1. man kann der VM wahlweise einen oder zwei Cores zur Verfügung stellen - genauer gesagt, man kann angeben, ob die virtuelle CPU ein Single- oder Double-Core ist. Mehr nicht.

        Doch, man kann ein, zwei, drei oder vier zuordnen.

        1. Hallo,

          man kann der VM wahlweise einen oder zwei Cores zur Verfügung stellen - genauer gesagt, man kann angeben, ob die virtuelle CPU ein Single- oder Double-Core ist. Mehr nicht.

          Doch, man kann ein, zwei, drei oder vier zuordnen.

          okay, ich lerne ja auch täglich dazu.
          Ich kann allerdings nicht mehr als zwei Kerne auswählen, weil mein Hostsystem "nur" eine Dualcore-CPU hat, und die VM kann nicht mehr CPU-Cores haben als die physikalische CPU.

          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