Come posso analizzare i problemi di performance prima e durante il process di accesso?

Come posso analizzare un problema di performance che avviene prima o durante il process di accesso?

Utilizzo di Process Monitor

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

In questo caso, vogliamo utilizzare lo strumento per determinare quali events durante il process di avvio richiedevano molto tempo per completare.

  1. Scaricare Process Monitor e lanciarlo.

  2. Nel menu Opzioni , seleziona Enable Boot Logging .

    Attivare la registrazione di avvio

  3. Nella window di dialogo risultante, select Crea events di profilazione e fare clic su OK .

    Genera eventi di profilazione

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

  5. Process Monitor ti informsrà che ha raccolto l'attività di avvio e ti chiederà se vuoi salvare i dati ora. Confermare il process facendo clic su .

    Salva l'attività di avvio

  6. Selezionare una posizione di memorizzazione appropriata per il file .pml e attendere che i dati vengano convertiti. Una volta caricati i dati, visualizzate la colonna Durata aprendo il menu contestuale in una delle intestazioni di colonna e facendo clic su Seleziona colonne …

    Seleziona colonne ...

    … e controllare la casella di controllo appropriata nella window di dialogo risultante.

    Casella di controllo Durata

  7. Creare un nuovo filter selezionando Filtro … * dal menu Filtro ** .

    Menu Filtro

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

    immettere qui la descrizione dell'immagine

  9. A questo punto, l'elenco di events in Process Monitor mostrerà solo gli events che hanno richiesto più di un secondo per completare. Vorresti controllare la colonna Durata per gli events che hanno impiegato molto tempo per completare.

    Per scopi dimostrativi, qui è una selezione di events che hanno richiesto più di 10 secondi per completare. Questo è stato catturato in una macchina virtuale per scopi dimostrativi.

    Esempi di eventi
    clicca per ingrandire

    Mentre questi events non devono necessariamente essere colpevoli di bloccare il process di accesso per completare, distriggersre il servizio di indexing di Windows e Avast Anti-Virus potrebbe valere la pena di questa installazione.

Utilizzo di xperf

xperf è uno strumento di analisi delle performance del Windows Performance Toolkit. L'utilizzo e la possibilità di analizzare i dati raccolti possono essere una sfida. Tuttavia, vedremo come raccogliere i dati richiesti e come visualizzare le relative sezioni di esso.

Si prega di notare che il Kit di valutazione e distribuzione di Windows (ADK), che è necessario per questo, funziona solo su Windows 7 e versioni successive.

  1. Scaricare l' ADK di Windows e installare alless il componente Windows Performance Toolkit .

  2. Una volta completata l'installazione, aprire un prompt dei comandi elevato.

    Prompt dei comandi elevati

  3. Cambiare in una directory in cui desideri che la tua traccia sia posizionata. Come il desktop.

  4. Il modo consigliato (secondo l' utilizzo di XBOOTMGR per catturare gli scarti lenti o gli avvisi lenti causati dagli stivali lenti ) per catturare una traccia durante l'avvio è:

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

    Il sistema avvia ora la traccia e il riavvio.

  5. Dopo il riavvio, seguire le istruzioni visualizzate sullo schermo. Sarà chiesto di consentire l'elevazione del process di raccolta. Una volta completato il process, troverai la traccia risultante nella cartella da where hai iniziato la traccia.

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

    Aprire il file .etl in Windows Performance Analyzer .

Analisi

Dopo aver aperto la traccia, è ansible vedere già possibili indicazioni sul problema dell'hardware. Uno sguardo rapido sulle considerazioni di calcolo , memorizzazione e memory nell'esploratore grafico mostrerebbe picchi che dovrebbero essere ulteriormente analizzati.

Per scopi dimostrativi, esaminiamo il grafico Utilizzo per process . Per visualizzare il contenuto, fai doppio clic sul grafico per aggiungerlo alla visualizzazione Analisi .

Panoramica delle prestazioni di Windows Performance
clicca per ingrandire

Si noti che nessuno dei grafici visualizza alcun picco relativo. I picchi blu all'avvio appartengono al process di Sistema e si prevede che accadano in questo momento.

Le altre cime del grafico di utilizzo della CPU potrebbero essere meglio visualizzate nel context. Quindi, aggiungiamo un altro grafico alla visualizzazione Analisi. Il grafico che stiamo cercando è il grafico delle fasi di avvio , che si trova nella sezione Attività di sistema .

Fasi di avvio
clicca per ingrandire

Nello screenshot sopra ho anche aggiunto il grafico Generic Events nella parte inferiore per fornire un context aggiuntivo. Tuttavia, ciò che si deve notare è il fatto che il primo picco visibile nell'utilizzo della CPU è stato causato dal servizio Avast. Abbiamo già notato nell'analisi Process Monitor che questo process è stato uno dei processi che hanno preso una grande parte del tempo nel process di avvio.

Ciò che vediamo anche qui, ora che possiamo vederlo nel context delle fasi di avvio, è che il picco è accaduto dopo la fase Winlogon Init (e anche nella fase Post Boot che accade quando si può già vedere il desktop). Quindi potrebbe essere considerato improbabile che questo process sta in realtà causando un problema nella fase prima di vedere il desktop.

Quello che cercheremo sono gli events che si verificano in o intorno alla fase Winlogon Init . Per rendere più semplice, è ansible select la fase del grafico delle fasi di avvio. Ciò evidenzierà tutte le voci in tutti i grafici che sono avvenuti in quella fase.

Un grafico per dare un'occhiata meglio è certamente il grafico dei servizi , poiché la maggior parte di essi viene avviata durante la fase Winlogon Init.

Come ho detto nell'introduzione, l'analisi di questi dati può essere complicata, a less che il problema non salti subito quando si apre la traccia. Tuttavia, questo è sicuramente lo strumento giusto per analizzare il problema. A seconda della situazione, si potrebbe anche desiderare di raccogliere tracce di stack con esso per trapano ancora più profondo. Questo process è ben al di fuori della portta di questo post.

Ulteriori letture

  • Strumenti per la risoluzione dei problemi di avvio lento e accesso lento (sbsl) (TechNet)
  • Slow Logon di avvio lento (SBSL), uno strumento chiamato XPerf e link che è necessario leggere (Blog TechNet)