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.
Aprire Windows Assessment Console (WAC) dal menu Start .
Aprire il menu Opzioni e selezionare Nuovo processo...
Immettere MemoryTest come nome del processo.
Selezionare Crea un processo personalizzato.
Fare clic su Aggiungi valutazioni.
- Aggiungere la valutazione del footprint di memoria facendo clic sul simbolo "+"
Fare clic sulla valutazione memory footprint appena aggiunta per immettere la configurazione di test.
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.
Con l'opzione Esecuzione rapida selezionata sono disponibili due opzioni:
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.
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
In WAC aprire il menu Opzioni e selezionare Apri risultati...
- È anche possibile premere CTRL+R sulla tastiera.
Fare clic sul pulsante Sfoglia.
Passare alla cartella in cui è stata archiviata la valutazione creata nel passaggio 1.
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.
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.
Espandere la categoria Allocazioni non a pagina driver facendo clic sulla freccia a sinistra.
Espandere la categoria DriverLockedSystemPages .
- Questa memoria viene caricata dalla memoria in pagina e quindi bloccata dal driver fino a quando non è più utile.
Identificare il driver con l'utilizzo di memoria più grande.
È 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.
Espandere la categoria Elabora pagine private facendo clic sulla freccia a sinistra.
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:
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.
Aprire Windows Performance Recorder dal menu Start .
Selezionare i profili di registrazione "Valutazione primo livello" e " Analisi set di residenti", ma mantenere i valori predefiniti per le altre opzioni.
Fare clic su Avvia e attendere alcuni secondi.
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:
Avviare Windows analizzatore prestazioni dal menu Start.
Aprire la traccia ETL appena raccolta (menu File , Apri...).
Espandere il set di memoria in Graph Explorer.
Trascinare e rilasciare il grafico Set di residenti nella scheda Analisi.
La visualizzazione dovrebbe avere un aspetto simile al seguente:
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.
|
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:
|
Categoria pagina | Tipo di dati contenuti nella pagina, come definito di seguito. Alcune delle possibili categorie sono:
|
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.
Selezionare il set di impostazioni Di lavoro privato processo .
Espandere il gruppo MMList attivo .
Concentrarsi sulla categoria Active perché è ciò che attualmente influisce sull'utilizzo della memoria.
Le pagine di standby potrebbero essere liberate sotto pressione di memoria.
Le pagine modificate possono essere scritte su disco e liberate.
Ordinare in base alle dimensioni facendo clic sull'intestazione della colonna Size (MB).
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.
Espandere i processi da esaminare categoria pagina.
È ora possibile visualizzare la composizione del set di lavoro del processo nella figura seguente.
Le categorie principali devono essere VirtualAlloc o Win32Heap, che verranno analizzate in Esercizio 2.
Nell'esempio seguente ,SearchIndexer.exe usa 21,7 MB di memoria attiva tramite allocazioni heap e 12,4 MB tramite chiamate API VirtualAlloc .
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.