Come posso analizzare i problemi di prestazioni prima / durante il processo di accesso?


Risposte:


35

Utilizzando Process Monitor

Process Monitor è uno strumento che raccoglierà gli eventi del file system, del registro e della rete per tutti i processi in esecuzione. Gli eventi raccolti possono quindi essere analizzati per determinare come un sistema (o un'applicazione) si sta comportando internamente in determinate situazioni.

In questo caso, vogliamo utilizzare lo strumento per determinare quali eventi durante il processo di avvio hanno richiesto molto tempo per essere completati.

  1. Scarica Process Monitor ed eseguilo.

  2. Nel menu Opzioni , selezionare Abilita registrazione di avvio .

    Attivare la registrazione di avvio

  3. Nella finestra di dialogo risultante, seleziona Genera eventi di profilazione e fai clic su OK .

    Genera eventi di profilazione

  4. Riavviare il sistema e replicare il problema. Una volta completato il processo di accesso, avviare Process Monitor.

  5. Process Monitor ti informerà che ha raccolto l'attività di avvio e ti chiederà se desideri salvare quei dati ora. Conferma il processo facendo clic su .

    Salva attività di avvio

  6. Selezionare un percorso di archiviazione appropriato per il .pmlfile e attendere la conversione dei dati. Una volta caricati i dati, visualizza la colonna Durata aprendo il menu di scelta rapida su una delle intestazioni di colonna e facendo clic su Seleziona colonne ...

    Seleziona colonne ...

    ... e selezionando la casella di controllo appropriata nella finestra di dialogo risultante.

    Casella di controllo Durata

  7. Crea un nuovo filtro selezionando Filtro ... * dal menu ** Filtro .

    Menu filtro

  8. Creare un filtro per la colonna Durata in cui è superiore a un valore di 1 , nel qual caso la voce deve essere inclusa . Fare clic su Aggiungi per aggiungere il filtro all'elenco e confermare la selezione con OK .

    inserisci qui la descrizione dell'immagine

  9. A questo punto, l'elenco degli eventi in Process Monitor mostrerà solo gli eventi che hanno richiesto più di 1 secondo per essere completati. Ti consigliamo di controllare la colonna Durata per gli eventi che hanno richiesto molto tempo per il completamento.

    A scopo dimostrativo, ecco una selezione di eventi che hanno richiesto più di 10 secondi per essere completati. Questo è stato catturato in una macchina virtuale a scopo dimostrativo.

    Eventi di esempio
    clicca per ingrandire

    Sebbene questi eventi non debbano necessariamente essere colpevoli del blocco del completamento del processo di accesso, la disabilitazione del servizio di indicizzazione di Windows e Avast Anti-Virus potrebbe valere la pena di essere analizzata in questa installazione.

Usando xperf

xperf è uno strumento di analisi delle prestazioni di Windows Performance Toolkit. Usarlo e poter analizzare i dati raccolti può essere una sfida. Tuttavia, vedremo come raccogliere i dati richiesti e come visualizzarne le sezioni pertinenti.

Si noti che Windows Assessment and Deployment Kit (ADK), necessario per questo, funziona solo su Windows 7 e versioni successive.

  1. Scarica Windows ADK e installa almeno il componente Windows Performance Toolkit .

  2. Una volta completata l'installazione, aprire un prompt dei comandi con privilegi elevati.

    Prompt dei comandi elevato

  3. Passare a una directory in cui si desidera posizionare la traccia. Come il desktop.

  4. Il modo consigliato (in base all'utilizzo di XBOOTMGR per acquisire l'avvio lento o gli accessi lenti causati da l' avvio lento ) per acquisire una traccia durante l'avvio è:

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

    Il sistema ora avvierà la traccia e si riavvierà.

  5. Dopo il riavvio, seguire le istruzioni visualizzate. Ti verrà chiesto di consentire l'elevazione del processo di raccolta. Al termine del processo, troverai la traccia risultante nella cartella da cui hai avviato la traccia.

    Nel mio caso, ha creato un boot_1.etl(e un corrispondente boot_1.cab) sul desktop.

    Apri il .etlfile in Windows Performance Analyzer .

Analisi

Dopo aver aperto la traccia, puoi già vedere le possibili indicazioni del tuo problema legato all'hardware. Una rapida occhiata alle panoramiche di calcolo , archiviazione e memoria in Graph Explorer mostrerebbe picchi che dovrebbero essere ulteriormente analizzati.

A scopo dimostrativo, diamo un'occhiata al grafico Utilizzo per processo . Per visualizzare il contenuto, è sufficiente fare doppio clic sul grafico per aggiungerlo alla vista Analisi .

Panoramica di Windows Performance Analyzer
clicca per ingrandire

Notare che nessuno dei grafici mostra picchi relativi. I picchi blu all'inizio appartengono al processo di sistema e sono previsti in questo momento.

Gli altri picchi nel grafico dell'utilizzo della CPU potrebbero essere visualizzati meglio nel contesto. Quindi, aggiungiamo un altro grafico alla vista Analisi. Il grafico che stiamo cercando è il grafico Fasi di avvio , che si trova nella sezione Attività di sistema .

Fasi di avvio
clicca per ingrandire

Nella schermata sopra, ho anche aggiunto il grafico Eventi generici in basso per fornire un contesto aggiuntivo. Tuttavia, ciò che dovrebbe essere notato qui è il fatto che il primo picco visibile nell'uso della CPU è stato causato dal servizio Avast. Abbiamo già notato nell'analisi di Process Monitor che questo processo era uno dei processi che ha impiegato molto tempo nel processo di avvio.

Ciò che vediamo anche qui, ora che possiamo vederlo nel contesto delle fasi di avvio, è che il picco si è verificato dopo la fase Init di Winlogon (e persino nella fase Post Boot che si verifica quando puoi già vedere il desktop). Quindi potrebbe essere considerato improbabile che questo processo ci stia effettivamente causando un problema nella fase prima di vedere il desktop.

Quello che dovremmo cercare sono gli eventi che accadono durante o intorno alla fase di Winlogon Init . Per semplificarlo, puoi selezionare la fase nel grafico Fasi di avvio. Ciò evidenzierà tutte le voci in tutti i grafici avvenuti in quella fase.

Un grafico da esaminare meglio è sicuramente il grafico dei servizi , poiché la maggior parte di essi viene avviata durante la fase Init di Winlogon.

Come ho detto nell'introduzione, l'analisi di questi dati può essere complicata, a meno che il problema non salti subito dopo aver aperto la traccia. Tuttavia, questo è sicuramente lo strumento giusto per analizzare il problema. A seconda della situazione, potresti anche voler raccogliere tracce dello stack con esso per eseguire un drill ancora più in profondità. Questo processo è molto al di fuori dell'ambito di questo post.

Ulteriori letture


xbootmgr di WPT ( msfn.org/board/index.php?showtopic=158252 ) è lo strumento migliore per iniziare. Uso solo la registrazione ProcMon per avere una visione più approfondita di una fase speciale dell'avvio.
magicandre1981,

@ magicandre1981: il post non era ancora finito;) Se vuoi aggiungere ulteriori dettagli su xperf, sentiti libero di modificarlo.
Der Hochstapler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.