Condividi tramite


Esercizio 1 - Identificare i processi con set di lavoro di grandi dimensioni

La metodologia usata per analizzare i dati può adottare diversi approcci e differisce in base alle circostanze in cui è stata avviata l'indagine. Questo esercizio illustra e presenta alcune metodologie di esempio insieme alle diverse visualizzazioni presentate da vari accordi di colonna.

I dati denominati Resident Set sono il set di pagine attualmente presenti nella memoria fisica (RAM). Il set residente è uno snapshot dello stato di memoria corrente alla fine di un'acquisizione di traccia con Windows Performance Recorder (WPR) o la valutazione della memoria di Assessment Toolkit. Non è possibile raccogliere più snapshot in una singola traccia.

I set di residenti forniscono uno snapshot olistico e istantaneo della composizione della memoria nel sistema. Le indagini sull'analisi del set di residenti vengono in genere eseguite per i motivi seguenti:

  • Per comprendere l'utilizzo della memoria fisica, soprattutto quando l'utilizzo della memoria fisica è superiore al previsto.

  • Per comprendere le origini del set di lavoro privato del processo, soprattutto quando il set di lavoro privato del processo è maggiore del previsto.

  • Problemi di risposta del sistema dovuti all'attività di paging.

Passaggio 1: Raccogliere dati usando Assessment Toolkit

Windows Assessment Toolkit contiene un test per misurare il footprint di memoria dopo l'avvio. È possibile usare i risultati della valutazione del footprint di memoria per raccogliere una linea di base del preload software dell'immagine. Molti processi e servizi sono sempre in uso e richiedono memoria. Questa valutazione consente di vedere come i driver e le applicazioni (che vengono sempre eseguiti) influiscono sul processo di avvio.

  1. Aprire Windows Assessment Console (WAC) dal menu Start .

  2. Aprire il menu Opzioni e selezionare Nuovo processo...

    1. Immettere MemoryTest come nome del processo.

    2. Selezionare Crea un processo personalizzato.

  3. Fare clic su Aggiungi valutazioni.

    • Aggiungere la valutazione del footprint di memoria facendo clic sul simbolo "+"
  4. Fare clic sulla valutazione memory footprint appena aggiunta per immettere la configurazione di test.

  5. Deselezionare Usa impostazioni consigliate e selezionare Esecuzione rapida per la configurazione.

    • Esecuzione rapida consente al test di completare in un periodo di tempo più breve a spese dell'accuratezza dei dati.

    Screenshot di Windows Assessment Console.

  6. Con l'opzione Esecuzione rapida selezionata sono disponibili due opzioni:

    1. Creare un pacchetto del processo per creare una cartella con tutte le risorse di test e copiarla in un altro sistema di test. Fare clic sul pulsante Pacchetto ... nell'angolo in basso a destra per scegliere questa opzione.

    2. Eseguire il processo direttamente nel sistema. Fare clic sul pulsante Esegui nell'angolo in basso a destra per scegliere questa opzione.

      • Viene riavviato il sistema per raccogliere una traccia.

      • Questo test può richiedere circa 15-20 minuti per completare.

    Si vuole che l'opzione Esegui .

Passaggio 2: Visualizzare i risultati della valutazione del footprint di memoria usando WAC

Al termine della valutazione, è possibile aprire il file XML dei risultati contenente un riepilogo dell'utilizzo della memoria nel sistema.

Passaggio 2.1: Aprire il report di memoria

  1. In WAC aprire il menu Opzioni e selezionare Apri risultati...

    • È anche possibile premere CTRL+R sulla tastiera.
  2. Fare clic sul pulsante Sfoglia.

  3. Passare alla cartella in cui è stata archiviata la valutazione creata nel passaggio 1.

  4. Aprire la valutazione creata nel passaggio 1.

    Il report contiene diverse categorie per comprendere il driver e elaborare i contributi al footprint di memoria complessivo.

    Il report dovrebbe essere simile al seguente.

    Report di esempio da Windows Assessment Console che mostra l'utilizzo della memoria.

  5. Prendere il tempo di acquisire familiarità con il report esaminando le categorie Driver e Elabora pagine private .

Nell'esempio precedente viene usato 1487 MB di memoria su 4 GB di RAM fisica.

  • Memoria in uso = Elaborare set di lavoro + memoria non a pagina e pagine modificate

  • Memoria disponibile = Memoria standby + memoria libera

Nell'esempio precedente, i più grandi consumer di utilizzo della memoria sono allocazioni driver con 267 MB per non impaginati e 613 MB per elaborare pagine private (set di lavoro privati).

Per altre informazioni sulle metriche, vedere l'argomento Risultati per la valutazione del footprint di memoria in MSDN.

Passaggio 2.2: Esaminare le allocazioni non impaginate del driver

Questa metrica è simile alle allocazioni impaginate, ad eccezione del fatto che queste allocazioni usano memoria fisica che non possono essere impaginate. Ciò riflette la memoria fisica aggiunta e pertanto non è disponibile per la memoria impaginata o l'uso da parte di altri processi e servizi. L'acquisizione di troppo memoria non a pagina riduce la quantità di memoria che può essere usata dalla memoria supportata.

  1. Espandere la categoria Allocazioni non a pagina driver facendo clic sulla freccia a sinistra.

  2. Espandere la categoria DriverLockedSystemPages .

    • Questa memoria viene caricata dalla memoria in pagina e quindi bloccata dal driver fino a quando non è più utile.
  3. Identificare il driver con l'utilizzo di memoria più grande.

    Report di esempio da Windows Assessment Console che mostra l'utilizzo dell'allocazione non a pagina del driver.

È possibile influenzare questa metrica scambiando hardware o driver software con requisiti di memoria inferiori.

Il fornitore del driver ha la maggior influenza su questa metrica in base al modo in cui il driver è progettato. Cercare allocazioni di memoria di grandi dimensioni nei risultati presentati in WAC. Inoltre, i fornitori di driver possono fornire tracce delle prestazioni (archiviate nella stessa directory dei risultati della valutazione e possono essere analizzate con WPA) di questa valutazione per trovare aree di allocazione di memoria pesante che sono candidati per le indagini per ridurre l'uso della memoria.

Passaggio 2.3: Esaminare i set di lavoro privati del processo

Gli utenti più grandi del footprint complessivo della memoria sono app che possono essere sempre in esecuzione in background senza conoscenza dell'utente. Per visualizzare la quantità di memoria usata dai processi, è possibile usare la categoria Elabora pagine private nel report.

  1. Espandere la categoria Elabora pagine private facendo clic sulla freccia a sinistra.

  2. Espandere la categoria Active . L'elenco mostra i file binari e il relativo utilizzo della memoria attiva.

    La visualizzazione dovrebbe avere un aspetto simile al seguente:

    Report di esempio da Windows Assessment Console che mostra l'utilizzo della memoria del processo.

  3. Identificare il processo che usa la maggior parte della memoria.

È possibile influenzare questa metrica riducendo il numero di applicazioni "esegui sempre", che sono applicazioni nella cartella Esegui chiave del Registro di sistema o Startup . Analizzare l'impatto delle app aggiunte.

I fornitori di driver e software hanno la maggior influenza su questa metrica in base al modo in cui il codice è progettato. Cercare allocazioni di memoria di grandi dimensioni nei risultati presentati nel WAC. Inoltre, i fornitori di software possono fornire tracce delle prestazioni (archiviate nella stessa directory dei risultati della valutazione) di questa valutazione per trovare aree di allocazioni di memoria pesanti che sono candidati per le indagini per ridurre l'uso della memoria. Un'attenta analisi delle allocazioni, anche piccole, può aiutare lo sviluppatore a trovare le allocazioni che si aggiungono.

Passaggio 3: Raccogliere i dati del set di residenti usando WPR

Nei passaggi 1 e 2 si è appreso come raccogliere tracce di memoria usando la valutazione del footprint di memoria di Assessment Toolkit . Questa valutazione può acquisire solo una traccia per lo scenario di avvio. È possibile acquisire tracce per qualsiasi scenario (avvio dell'app, esplorazione Web e così via) usando Windows Performance Recorder (WPR)

Seguire questa procedura per raccogliere una traccia con i dati del set di residenti.

  1. Aprire Windows Performance Recorder dal menu Start .

  2. Selezionare i profili di registrazione "Valutazione primo livello" e " Analisi set di residenti", ma mantenere i valori predefiniti per le altre opzioni.

  3. Fare clic su Avvia e attendere alcuni secondi.

    Screenshot della schermata Informazioni di sistema record della console di valutazione di Windows che mostra la registrazione dello stato non avviata

  4. Fare clic su Salva e salvare la traccia ETL su disco.

È ora disponibile uno snapshot della composizione della memoria di sistema.

Passaggio 4: Interpretare i dati del set di residenti usando WPA

Seguire questa procedura:

  1. Avviare Windows analizzatore prestazioni dal menu Start.

  2. Aprire la traccia ETL appena raccolta (menu File , Apri...).

  3. Espandere il set di memoria in Graph Explorer.

    Screenshot della visualizzazione esplora grafici WPA.

  4. Trascinare e rilasciare il grafico Set di residenti nella scheda Analisi.

La visualizzazione dovrebbe avere un aspetto simile al seguente:

Screenshot di WPA che mostra la visualizzazione della scheda analisi.

Esaminare il modo in cui vengono presentati i dati. Ecco alcune definizioni delle colonne più utili per eseguire l'analisi di primo livello:

Colonna Definizione
MMList

Elenco di gestione della memoria contenente le pagine.

  • Attivo : le pagine attualmente all'interno di un set di lavoro privato del processo o del set di lavoro del kernel.

  • Standby : pagine non modificate nell'elenco di standby. Fanno parte della memoria disponibile.

  • Modifica : elaborare pagine private o supportate da file modificate dall'ultima volta in modo permanente nell'archiviazione permanente.

  • ModifiedNoWrite : pagine modificate, ma non verranno mantenute nell'archiviazione permanente.

  • Transizione : pagine in transizione tra elenchi.

Processo

Nome del processo proprietario delle pagine. Queste informazioni sono disponibili solo per elaborare pagine private. Anche se non sono condivisi, tutte le pagine condivisibili sono associate al processo "Sconosciuto" (-1).

Descrizione

Il valore rappresentato varia a seconda della categoria di pagina. Ad esempio:

  • Per immagini, driver, file e così via, visualizza il percorso e il nome completi del file.

  • Per memoria pool , mostra il nome del tag del pool di driver.

Categoria pagina

Tipo di dati contenuti nella pagina, come definito di seguito. Alcune delle possibili categorie sono:

  • CopyOnWriteImage : elaborare pagine private create dall'applicazione di patch di una tabella di indirizzi eseguibile o ribasing di un eseguibile.

  • Driver : pagine di codice per un driver.

  • DriverFile : pagine di codice letti dal file eseguibile del driver e mappate come dati.

  • DriverLockedSystemPage : pagine in modalità kernel bloccate o aggiunte in memoria, in genere da driver o kernel.

  • Immagine : pagine da .dll e .exe file caricati come immagini eseguibili.

  • MapFile : pagine di file di dati o immagini caricate come dati.

  • NonPagedPool : pagine che contengono dati per il pool di sistema non paginabile.

  • PagedPool : pagine che contengono dati per il pool di sistema paginabile.

  • PFMappedSection : pagine di sezioni mappate alla memoria supportate dal file di pagina.

  • SystemPage : pagine che contengono voci della tabella di pagina di sistema usate per eseguire il mapping delle pagine di sistema, ad esempio spazio di I/O, stack di kernel e elenchi di descrittori di memoria.

  • UserStack : pagine che contengono i dati in modalità utente per ogni thread.

  • VirtualAlloc : pagine allocate dalle API VirtualAlloc.

  • Win32Heap : pagine heap .

Dimensioni (MB)

Dimensioni totali delle pagine aggregate in ogni categoria.

Passaggio 6: Identificare i set di lavoro del processo che influisce sul footprint della memoria

I dati del set di residenti possono essere visualizzati in molti modi diversi in base agli accordi di colonna nella tabella di riepilogo. La tabella di riepilogo include diversi accordi di colonna predefiniti che è possibile usare come punti di partenza per un'indagine.

  1. Selezionare il set di impostazioni Di lavoro privato processo .

    Screenshot dell'elenco a discesa Del set di lavoro privato del processo WPA.

  2. Espandere il gruppo MMList attivo .

    1. Concentrarsi sulla categoria Active perché è ciò che attualmente influisce sull'utilizzo della memoria.

    2. Le pagine di standby potrebbero essere liberate sotto pressione di memoria.

    3. Le pagine modificate possono essere scritte su disco e liberate.

  3. Ordinare in base alle dimensioni facendo clic sull'intestazione della colonna Size (MB).

  4. Identificare i processi con l'utilizzo più grande. È possibile che N/A e "Unknown (-1)" vengano visualizzati come nomi di processo.

    • N/A contiene pagine non associate a processi come la memoria del pool di driver.

    • "Sconosciuto (-1)" contiene pagine condivisibili.

  5. Espandere i processi da esaminare categoria pagina.

    1. È ora possibile visualizzare la composizione del set di lavoro del processo nella figura seguente.

    2. Le categorie principali devono essere VirtualAlloc o Win32Heap, che verranno analizzate in Esercizio 2.

    3. Nell'esempio seguente ,SearchIndexer.exe usa 21,7 MB di memoria attiva tramite allocazioni heap e 12,4 MB tramite chiamate API VirtualAlloc .

    Tabella di esempio che mostra l'utilizzo del processo.

Concentrarsi sui processi di terze parti e determinare se devono essere avviati all'avvio come parte del software precaricati. In qualità di sviluppatore, è necessario analizzare le allocazioni dinamiche effettuate dal processo per comprendere dove è possibile effettuare ottimizzazioni.