Da Sistemista ci si trova spesso a dover analizzare problemi di prestazioni legati ai processi di avvio/arresto/ibernazione/ripresa di una workstation/Server. Microsoft fornisce una serie di registri eventi di sistema per diversi scopi che possono essere utili in tali analisi. Nel Visualizzatore eventi di Windows, questi registri si trovano in un ramo speciale chiamato "Registri applicazioni e servizi". Windows registra gli eventi di diagnostica delle prestazioni nel registro eventi Microsoft-Windows-Diagnostics-Performance/Operational. Per aprire questo registro in Visualizzatore eventi di Windows (eventvwr), espandere il ramo Registri applicazioni e servizi -> Microsoft -> Windows -> Diagnostics-Performance ->Operativo.
Dal registro è possibile visualizzare un elenco di diversi eventi diagnostici. Come si può notare dalla FIG 1, gli eventi con lo stesso ID possono essere di tipi (livelli) diversi (Avviso, Errore e Critico) che dipendono dalla durata del processo di avvio/arresto. Questi eventi contengono internamente molti parametri importanti, ma non sono visibili nella descrizione dell'evento (anche il Visualizzatore eventi di Windows non li visualizza). L'unico modo per visualizzare questi parametri è fare doppio clic sull'evento per visualizzarne le proprietà, passare alla scheda Dettagli e selezionare XML.
Nella seguente tabella sono riportati le descrizioni degli Event ID.
Event ID | Descrizione |
---|---|
Monitoraggio delle prestazioni di avvio | |
100
|
Avvio di Windows
|
101
|
L'avvio dell'applicazione ha richiesto più tempo del consueto, determinando una riduzione del livello delle prestazioni del processo di avvio del sistema
|
102
|
L'inizializzazione del driver ha richiesto più tempo del previsto, determinando una riduzione del livello delle prestazioni del processo di avvio del sistema
|
103
|
L'avvio di questo servizio di avvio ha richiesto più tempo del previsto, determinando una riduzione del livello delle prestazioni del processo di avvio del sistema
|
104
|
L'inizializzazione del sistema Core ha richiesto più tempo, con conseguente riduzione delle prestazioni nel processo di avvio del sistema.
|
105
|
Le ottimizzazioni in primo piano (prefetching) hanno richiesto più tempo per essere completate, con un conseguente calo delle prestazioni nel processo di avvio del sistema.
|
106
|
Le ottimizzazioni in background (prefetching) hanno richiesto più tempo per essere completate, con conseguente riduzione delle prestazioni nel processo di avvio del sistema.
|
107
|
L'applicazione dei criteri computer ha causato un rallentamento nel processo di avvio del sistema
|
108
|
L'applicazione dei criteri utente ha causato un rallentamento nel processo di avvio del sistema
|
109
|
L'inizializzazione del dispositivo ha richiesto più tempo del previsto, determinando una riduzione del livello delle prestazioni del processo di avvio del sistema
|
110
|
L'inizializzazione della gestione delle sessioni ha causato il rallentamento del processo di avvio
|
Monitoraggio delle prestazioni di arresto del sistema | |
200
|
Arresto di Windows
|
201
|
Questa applicazione ha causato un ritardo nel processo di spegnimento del sistema.
|
202
|
Questo dispositivo ha causato un ritardo nel processo di spegnimento del sistema
|
203
|
Il servizio ha causato un rallentamento nel processo di arresto del sistema
|
Monitoraggio delle prestazioni in standby | |
300
|
Windows ha ripreso dallo standby
|
301
|
Questa applicazione ha causato un ritardo durante lo standby
|
302
|
Questo driver ha causato un ritardo durante lo standby durante la manutenzione di un dispositivo
|
303
|
Questo servizio ha causato un ritardo durante la sospensione ibrida
|
304
|
La creazione del file hiber è stata più lenta del previsto
|
305
|
La permanenza delle cache del disco è stata più lenta del previsto
|
306
|
La preparazione del sottosistema video per la sospensione è stata più lenta del previsto
|
307
|
La preparazione di Winlogon per la sospensione era più lenta del previsto
|
308
|
La preparazione della memoria di sistema per la sospensione è stata più lenta del previsto
|
309
|
La preparazione del sistema principale per la sospensione è stata più lenta del previsto
|
310
|
La preparazione dei thread di lavoro del sistema per la sospensione è stata più lenta del previsto
|
350
|
Il tempo di inizializzazione del BIOS è stato superiore a 250 ms (requisito del logo) durante il ripristino del sistema
|
351
|
Questo driver ha risposto più lentamente del previsto alla richiesta di ripristino durante la manutenzione di questo dispositivo
|
352
|
La lettura del file hiber è stata più lenta del previsto
|
Monitoraggio delle prestazioni del sistema | |
400
|
Informazioni sull'evento di monitoraggio delle prestazioni del sistema
|
401
|
Questo processo utilizza il tempo del processore e influisce sulle prestazioni di Windows
|
402
|
Questo processo sta eseguendo attività eccessive del disco e ha un impatto sulle prestazioni di Windows
|
403
|
Questo driver utilizza troppe risorse e influisce sulle prestazioni di Windows
|
404
|
Questo driver attende più del previsto su un dispositivo
|
405
|
Questo file è frammentato e influisce sulle prestazioni di Windows
|
406
|
L'I/O del disco su questo file sta richiedendo più tempo del previsto
|
407
|
Questo processo utilizza troppa memoria di sistema
|
408
|
Molti processi utilizzano troppa memoria di sistema
|
Monitoraggio delle prestazioni del sistema | |
500
|
Il Desktop Window Manager sta riscontrando un forte conflitto di risorse
|
501
|
Il Desktop Window Manager sta riscontrando un forte conflitto di risorse
|
Dovendo effettuare l'analisi sulle prestazioni di avvio/spegnimento/standby/ripresa, dovremmo prestare attenzione agli eventi 1xx, 2xx e 3xx. Come visibile in tabella e in FIG 1, gli eventi 100, 200 e 300 sono eventi di base seguiti da 1xx, 2xx e 3xx che forniscono informazioni aggiuntive sul problema.
Supponiamo di voler individuare l'applicazione che rallenta l'avvio di Windows. Windows registra l'ora di avvio e i tempi di riduzione prestazioni (in millisecondi) per ogni servizio e sottosistema avviato. Grazie a questi dati, è possibile identificare potenziali problemi con i servizi che richiedono troppo tempo per essere avviati. In questo caso l'Event ID che ci interessa è il 101 e i livelli Critico/Errore (livelli 1 e 2).
PowerShell può esserci d'aiuto in tali contesti. Tramite questo semplice script, da eseguire come amministratore, vengono evidenziati tutti gli eventi con Event ID 101 e di livello 1 e 2 degli ultimi 60 giorni.
$Days = 60
$machineName = @{
Name = 'Nome PC'
Expression = { $env:COMPUTERNAME }
}
$FileName = @{
Name = 'Nome File';
Expression = { $_.properties[2].value }
}
$Name = @{
Name = 'Nome';
Expression = { $_.properties[4].value }
}
$Version = @{
Name = 'Versione'
Expression = { $_.properties[6].value }
}
$TotalTime = @{
Name = 'Tempo Totale'
Expression = { $_.properties[7].value }
}
$DegradationTime = @{
Name = 'Tempo riduzione prestazioni'
Expression = { $_.properties[8].value }
}
Get-WinEvent -FilterHashtable @{
LogName='Microsoft-Windows-Diagnostics-Performance/Operational'
Id=101
StartTime = (Get-Date).AddDays(-$Days)
Level = 1,2
} |
Select-Object -Property $MachineName, TimeCreated, $FileName, $Name, $Version, $TotalTime, $DegradationTime, Message | Out-GridView
FIG 3 - Script PowerShell, Get-WinEvent |
Nessun commento:
Posta un commento
I messaggi sono soggetti a moderazione da parte dell'amministratore prima della loro pubblicazione.