Frage Wie verfolge ich die CPU-Auslastung für Window Services?


Ich benutze den Windows-Task-Manager, um die CPU-Auslastung zu verfolgen. Ich stelle fest, dass meine Anwendungen aufgelistet sind, Windows-Dienste jedoch nicht.

Zum Beispiel ist die Gesamt-CPU-Auslastung bei 70% aufgeführt, aber die Zusammenfassung der aufgelisteten Anwendungen ist nur etwa 30%. Ich nehme an, der Unterschied ist von Diensten, die nicht auf der Registerkarte Prozesse im Windows Task-Manager aufgeführt sind.


27
2018-06-17 23:53


Ursprung


serverfault.com/questions/2786/ ... - Shaun Hess


Antworten:


So erhalten Sie detaillierte Informationen zu einem Dienst ohne externe Tools unter Windows 7 und 8:

Öffnen Sie den Ressourcenmonitor:

  • Öffnen Sie den Task-Manager und klicken Sie auf die Registerkarte Leistung
  • Klicken Sie unten auf "Ressourcenmonitor öffnen"

Dienstdetails anzeigen:

  • Klicken Sie auf die Registerkarte "CPU"
  • Suchen Sie im Abschnitt "Prozesse" den gewünschten Prozess. Sie können nach CPU sortieren, indem Sie auf die Spaltenüberschrift "CPU" klicken
    • Kreuzen Sie das Kästchen daneben an
  • Erweitern Sie den Abschnitt "Dienste" unten. Sie werden sehen, welcher bestimmte Dienst die CPU verwendet

enter image description here

Ich musste das herausfinden, weil Svchost eine Menge Ressourcen verbrauchte und das war der einzige Weg, um zu sehen, dass Upnphost der Schuldige war.


23
2017-11-06 11:50



Es gibt auch einen Bereich "Dienste", den Sie unter "Prozesse" erweitern können. Wie auch immer, danke! - Nicholas Riley
Das ist, worüber ich gesprochen habe, froh, dass du es gefunden hast :-), indem du einen Prozess unter "Prozesse" auswählst (wie in meinem Fall ein bestimmtes svchost), kannst du die Dienste in der Ansicht "Dienste" sehen, die damit verbunden sind verarbeiten. - dominik andreas
Schließlich werde ich in der Lage sein, diesen mysteriösen Dienst, der 1 CPU bei 100% auf Windows 7 verwendet, nur dann zu finden, wenn mein Bildschirm nach 15 Minuten Leerlauf ausgeschaltet wird. Sobald ich es aufwecke, gibt der Dienst die CPU frei, die er benutzt. Ich habe gerade genug gesehen, um zu sehen, dass es ein "Svchost" ist ... jetzt, mit dem Durchschnitt von 60 Sekunden, werde ich Zeit haben, es zu sehen. Verdammte Botnets! - MrBrody


Wahrscheinlich das beste Werkzeug ist Process Explorer von Sysinternals. Sie können dieses Werkzeug und viele andere bekommen Hier.

Bearbeiten: Um zu sehen, welche Dienste in Svchost statt als separater Prozess ausgeführt werden, müssen Sie die Spalte "Befehlszeile" zum rechten Fenster hinzufügen. Leider werden Ihnen damit keine gebündelten Dienste angezeigt. Um diese Informationen in Process Explorer anzuzeigen, müssen Sie die Maus über die betreffende Instanz von svchost bewegen. Die Information wird in einem Popup angezeigt.


7
2018-06-18 02:31



Sie können auch procmon taskman ersetzen wählen. Procmon tut dies, indem er sich selbst als Debugger für den Taskman registriert und sich selbst anstelle von taskman ausführt, wenn taskman gestartet werden soll. - Brian Reiter
Hoppla. Nicht procmon, ich meine procexp. (Procmon ist ein weiteres Tool von sysinternals, mit dem Sie Registry-, Dateisystem- und Windows-API-Zugriffe für Prozesse überwachen können.) - Brian Reiter
Wenn Sie Datei> Details für alle Prozesse anzeigen verwenden, können Sie die Registerkarte "Threads" in den Prozesseigenschaften für diese Instanz von "svchost.exe" verwenden (doppelklicken Sie auf den Prozess oder drücken Sie die Eingabetaste), um die CPU-Auslastung pro Thread anzuzeigen In der Spalte Service wird der entsprechende Service aufgelistet. - Nicholas Riley
In ProcessExplorer haben mir die Registerkarten [Dienste] und [TCP / IP] wertvolle Informationen zur spezifischen Diensteidentifikation geliefert. Es gibt auch eine andere Art der Service-Identifizierung über den rechten Mausklick im Standard-Task-Manager, den ich unten als separate Antwort poste. - Alex Fortuna


Probieren Sie den Extensoft Free Extended Task Manager

http://www.extensoft.com/?p=downloads

Gehe zum Dienstleistungen Klicken Sie mit der rechten Maustaste auf einen laufenden Dienst, und klicken Sie dann auf Gehe zu Prozess.

Sie gelangen zurück auf die Registerkarte "Prozesse" und markieren, welcher Prozess von diesem Dienst verwendet wird.


1
2018-06-18 00:02



Ich habe den extensoft freien erweiterten Taskmanager installiert. Es fügt eine Service-Registerkarte hinzu. Ich klicke auf den Service und wähle Weiter aus. Es wechselt zur Registerkarte "Prozess", hebt jedoch den Prozess nicht hervor. Gibt es auch ein Tool, das die CPU-Nutzung aller Dienste in einer Liste anzeigt (ähnlich der Prozessliste im Task-Manager)? Hinweis: Ich verwende Windows Vista Home Premium Edition.
Ich bin nicht sicher, warum es den Prozess nicht hervorhebt. Ich habe auch eine Vista-Maschine neben mir und es zeigt, welcher Prozess mit dem Service verbunden ist. - Qwerty


Viele Dienste werden in einer Instanz eines generischen Hostprozesses, svchost.exe, ausgeführt. Sie können tasklist / svc in einer Befehlszeile verwenden, um eine Auflistung der Dienste abzurufen, die in jeder Instanz von svchost.exe zusammen mit anderen Prozessen ausgeführt werden.

Sie können auch im Task-Manager auf einen svchost.exe-Prozess klicken und "Gehe zu Service (s)" auswählen. Taskman wechselt dann zum Tab "Dienste" und markiert die relevanten Services.

Mit sysinternals process explorerSie können den Mauszeiger über eine servicehost.exe bewegen und einen Tooltip der darin enthaltenen Dienste sehen.

Keine davon wird Ihnen sagen, wie viel von der CPU-Zeit des Host-Service-Prozesses einem bestimmten Mitglieds-Service gewidmet ist, der darin gehostet wird.


1
2018-06-18 11:50



tasklist /svc ist eine nette Sache, zeigt PIDs und verwandte Dienste in einer kurzen Form. Vielen Dank! - Alex Fortuna


Dies funktionierte für mich im Standard-Task-Manager von Windows 7 Ultimate:

  1. Öffnen Sie den Task-Manager.
  2. Klicken Sie auf die Registerkarte [Prozesse].
  3. Klicken Sie auf die Schaltfläche [Prozesse von allen Benutzern anzeigen].
  4. Rechtsklick das svchost.exe was zu Problemen führt (Speicher, CPU, etc.)
  5. Wählen Sie im Pulldown-Menü [Gehe zu Service (s)].

Damit gelangen Sie auf die Registerkarte [Dienste] mit 1 oder mehr verwandte Dienstleistungen hervorgehoben. Bitte beachten Sie, dass ein Single svchost.exe kann sich auf der Registerkarte [Dienste] auf eine Reihe von Diensten beziehen.


1
2017-09-14 16:39





Sie sollten den Aufgabenmanager als Administrator öffnen. Klicken Sie auf "Prozesse von allen Benutzern anzeigen".

Aber wie Brian Reiter sagte, werden viele Dienste in einem Prozess gehostet. Um zu erkennen, welcher Dienst Ihre CPU verbraucht, können Sie meine versuchen Service-Offenlegung Werkzeug. Sie können Services in dedizierte Prozesse aufteilen. Sie können sehen, welcher Dienst Ressourcen verwendet. Nach der Untersuchung können Sie alle Dienste zurückgeben.


0
2018-02-23 11:09