Jak mogę analizować problemy z wydajnością przed / podczas procesu logowania?

Odpowiedzi:

35

Korzystanie z Monitora procesów

Process Monitor to narzędzie, które zbiera zdarzenia dotyczące systemu plików, rejestru i sieci dla wszystkich uruchomionych procesów. Zebrane zdarzenia można następnie przeanalizować, aby określić, jak system (lub aplikacja) zachowuje się wewnętrznie w określonych sytuacjach.

W tym przypadku chcemy użyć tego narzędzia do ustalenia, które zdarzenia podczas procesu rozruchu zajęły dużo czasu.

  1. Pobierz Process Monitor i uruchom go.

  2. W menu Opcje zaznacz opcję Włącz rejestrowanie rozruchu .

    Włącz rejestrowanie rozruchu

  3. W wyświetlonym oknie dialogowym zaznacz opcję Generuj zdarzenia profilowania i kliknij przycisk OK .

    Generuj zdarzenia profilowania

  4. Uruchom ponownie system i zreplikuj problem. Po zakończeniu procesu logowania uruchom Process Monitor.

  5. Process Monitor powiadomi Cię, że zebrał aktywność związaną z uruchomieniem komputera i zapyta, czy chcesz teraz zapisać te dane. Potwierdź proces, klikając Tak .

    Oszczędzaj czas uruchamiania

  6. Wybierz odpowiednią lokalizację do przechowywania .pmlpliku i poczekaj na konwersję danych. Po załadowaniu danych wyświetl kolumnę Czas trwania , otwierając menu kontekstowe na jednym z nagłówków kolumn i klikając Wybierz kolumny ...

    Wybierz kolumny ...

    ... i zaznaczenie odpowiedniego pola wyboru w wynikowym oknie dialogowym.

    Pole wyboru czasu trwania

  7. Utwórz nowy filtr, wybierając Filtr ... * z menu ** Filtr .

    Filtruj menu

  8. Utwórz filtr dla kolumny Czas trwania, w której jest ona większa niż wartość 1 , w którym to przypadku wpis powinien zostać uwzględniony . Kliknij Dodaj, aby dodać filtr do listy i potwierdzić wybór za pomocą OK .

    wprowadź opis zdjęcia tutaj

  9. W tym momencie lista zdarzeń w Monitorze procesów pokaże tylko zdarzenia, których ukończenie trwało dłużej niż 1 sekundę. Będziesz chciał sprawdzić kolumnę Czas trwania pod kątem wydarzeń, które zajęły dużo czasu.

    Dla celów demonstracyjnych, oto wybór wydarzeń, których ukończenie trwało dłużej niż 10 sekund. Zostało to zarejestrowane na maszynie wirtualnej w celach demonstracyjnych.

    Przykładowe wydarzenia
    Kliknij, aby powiększyć

    Chociaż te zdarzenia niekoniecznie muszą być przyczyną zablokowania procesu logowania, wyłączenie usługi indeksowania systemu Windows i programu Avast Anti-Virus może być warte zastrzelenia w tej instalacji.

Korzystanie z xperf

xperf to narzędzie do analizy wydajności z zestawu Windows Performance Toolkit. Wykorzystanie go i analiza zebranych danych może być wyzwaniem. Niemniej jednak zobaczymy, jak zebrać wymagane dane i jak wyświetlić odpowiednie ich części.

Należy pamiętać, że wymagany do tego zestaw oceny i wdrażania systemu Windows (ADK) działa tylko w systemie Windows 7 i nowszych wersjach.

  1. Pobierz zestaw Windows ADK i zainstaluj przynajmniej składnik Windows Performance Toolkit .

  2. Po zakończeniu instalacji otwórz wiersz polecenia z podwyższonym poziomem uprawnień.

    Podwyższony wiersz polecenia

  3. Przejdź do katalogu, w którym chcesz znaleźć swój ślad. Podobnie jak pulpit.

  4. Zalecany sposób (zgodnie z użyciem XBOOTMGR do przechwytywania powolnych rozruchów lub powolnych logowań spowodowanych powolnymi uruchomieniami) w celu przechwycenia śladu podczas rozruchu to:

    xbootmgr -trace boot -traceflags base+latency+dispatcher -stackwalk profile+cswitch+readythread -notraceflagsinfilename -postbootdelay 10

    System rozpocznie teraz śledzenie i uruchomi się ponownie.

  5. Po ponownym uruchomieniu postępuj zgodnie z instrukcjami na ekranie. Zostaniesz poproszony o zezwolenie na podniesienie poziomu procesu zbiórki. Po zakończeniu procesu znajdziesz wynikowy ślad w folderze, w którym zainicjowałeś śledzenie.

    W moim przypadku utworzono boot_1.etl(i odpowiadające boot_1.cab) na pulpicie.

    Otwórz .etlplik w Windows Performance Analyzer .

Analiza

Po otwarciu śledzenia możesz już zobaczyć możliwe oznaki powiązania problemu ze sprzętem. Szybkie spojrzenie na omówienie obliczeń , przechowywania i pamięci w Eksploratorze wykresów pokazałoby piki, które należy dalej analizować.

Dla celów demonstracyjnych przyjrzyjmy się wykresowi Wykorzystanie według procesu . Aby wyświetlić zawartość, wystarczy dwukrotnie kliknąć wykres, aby dodać go do widoku analizy .

Omówienie narzędzia Windows Performance Analyzer
Kliknij, aby powiększyć

Zauważ, że żaden z wykresów nie pokazuje żadnych pików. Niebieskie piki na początku należą do procesu systemowego i oczekuje się, że w tym czasie się zdarzy.

Inne piki na wykresie wykorzystania procesora można lepiej przeglądać w kontekście. Dodajmy kolejny wykres do widoku analizy. Szukany przez nas wykres to wykres faz rozruchu , który znajduje się w sekcji Aktywność systemu .

Fazy ​​rozruchowe
Kliknij, aby powiększyć

Na powyższym zrzucie ekranu dodałem również wykres zdarzeń ogólnych na dole, aby zapewnić dodatkowy kontekst. Jednak to, co powinno być tutaj zauważyć jest fakt, że pierwsze widoczne szczyt użycie procesora było spowodowane przez usługę Avast. Zauważyliśmy już w analizie Process Monitor, że proces ten był jednym z procesów, który zajmował dużą część czasu w procesie rozruchu.

Co widzimy tutaj, że teraz możemy zobaczyć go w kontekście fazy rozruchu, jest to, że szczyt się po tej Winlogon Init fazie (a nawet w post Boot fazie co zdarza się, gdy można już zobaczyć na pulpicie). Można zatem uznać za mało prawdopodobne, że proces ten faktycznie powoduje problem w fazie, zanim zobaczymy pulpit.

To, czego szukalibyśmy, to wydarzenia, które zdarzają się w fazie Winlogon Init lub wokół niej . Aby to ułatwić, możesz wybrać fazę na wykresie Fazy rozruchu. Spowoduje to podświetlenie wszystkich wpisów na wszystkich wykresach, które miały miejsce w tej fazie.

Wykres, na który lepiej się przyjrzeć, to z pewnością wykres usług , ponieważ większość z nich jest uruchamiana podczas fazy początkowej Winlogon.

Jak powiedziałem we wstępie, analiza tych danych może być skomplikowana, chyba że problem przeskoczy do ciebie po otwarciu śladu. Jest to jednak zdecydowanie odpowiednie narzędzie do analizy problemu. W zależności od sytuacji możesz nawet chcieć zbierać ślady na stosie, aby wiercić jeszcze głębiej. Ten proces jest jednak daleko poza zakresem tego postu.

Dalsza lektura

Der Hochstapler
źródło
xbootmgr z WPT ( msfn.org/board/index.php?showtopic=158252 ) jest lepszym narzędziem do rozpoczęcia. Używam rejestrowania ProcMon, aby lepiej przyjrzeć się specjalnej fazie rozruchu.
magicandre1981
@ magicandre1981: Wpis nie został jeszcze ukończony;) ​​Jeśli chcesz dodać do niego więcej szczegółów dotyczących xperf, możesz go edytować.
Der Hochstapler