Zaloguj% procesora według procesu w czasie

39

Czy w systemie Windows jest jakiś prosty sposób rejestrowania% czasu procesora na proces w czasie do pliku w celu późniejszej analizy?

O ile widzę ...

  1. Menedżer zadań pokazuje mi% procesora na proces, ale tylko wizualnie - nie ma możliwości zapisania do pliku.
  2. Perfmon pozwoli mi zapisać do pliku, a dodatkowo utworzy plik oparty na czasie (robienie migawek w określonych odstępach czasu) - co jest prawie tym, czego chcę, poza tym, o ile widzę, nie może rozbić% Procesor według procesu.
  3. Process Explorer pozwoli mi na podział według procesu, ale zapisze plik tylko jako migawkę jednego punktu w czasie

Więc żadne z nich nie jest tym, czego potrzebuję: muszę uzyskać plik zawierający coś w rodzaju „10 najlepszych procesów według CPU, co 15 sekund, aż zatrzymam monitorowanie”. Powód, dla którego go potrzebuję, ponieważ mam maszynę, na której jakiś proces powoduje sporadyczne krótkie wzrosty wykorzystania procesora kilka razy dziennie i muszę dowiedzieć się, który z nich jest winowajcą.

Czy coś może to zrobić, czy też przegapiłem jakąś funkcję perfmon lub eksploratora procesów?

PhantomDrummer
źródło

Odpowiedzi:

37

Process Monitor może to zrobić za Ciebie.

Najpierw możesz chcieć włączyć zbieranie zdarzeń profilowania:

wprowadź opis zdjęcia tutajwprowadź opis zdjęcia tutaj

Następnie po prostu zbieraj dane tak długo, jak chcesz (możesz skonfigurować filtry i włączyć Upuszczanie filtrowanych zdarzeń, jeśli planujesz gromadzić przez dłuższy czas). Następnie przejdź do Narzędzia -> Podsumowanie aktywności procesu:

wprowadź opis zdjęcia tutaj

Otrzymasz teraz listę wszystkich aktywnych procesów, które zarejestrowałeś, wraz z ich aktywnością w czasie. wprowadź opis zdjęcia tutaj

Następnie możesz otworzyć szczegóły dla pojedynczego procesu (klikając go dwukrotnie) i sprawdzić znaczniki czasu dla niektórych zdarzeń na wykresie:

wprowadź opis zdjęcia tutaj

Der Hochstapler
źródło
1
Dzięki. To imponujące wizualnie (boję się pomyśleć, ile pamięci zużyje, jeśli pozostawisz ją uruchomioną przez długi czas). Jest to z pewnością przydatne, aby zobaczyć na ekranie, co robią procesy. Jeśli jednak kliknę przycisk „Zapisz” na ekranie podsumowania aktywności procesu, zapisana zostanie migawka pojedynczego punktu w czasie, brak danych zależnych od czasu.
PhantomDrummer
@ PhantomDrummer: Zapisywanie i ładowanie plików PML działa dla mnie doskonale. Wszystkie wcześniej zarejestrowane zdarzenia są przywracane i dostępne do analizy po załadowaniu pliku PML. Pamiętaj, aby podczas zapisywania pliku wybrać Wszystkie zdarzenia . Jeśli po prostu nie chce działać, daj mi znać, a w odpowiedzi podam więcej szczegółów. Powodzenia :)
Der Hochstapler
1
@ PhantomDrummer: Przejdź do Opcje -> Profilowanie zdarzeń. Tam możesz ustawić interwał na 1s lub 100ms. Tak daleko, jak to możliwe. Jeśli plik nadal staje się zbyt duży, musisz skonfigurować bardziej rygorystyczne filtry i włączyć opcję Upuszczaj filtrowane zdarzenia.
Der Hochstapler
1
@Pacerier One to menedżer zadań, pozostałe operacje na rekordach wykonywane przez zadania.
Der Hochstapler
6
Czy jest coś prostszego? Wygląda na to, że musisz nauczyć się go używać. W przypadku niektórych drobnych kontroli chcę po prostu mieć czasy przetwarzania procesora, gdy użycie procesora jest większe niż X%
Darius.V