Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come risolvere i problemi relativi all'uso di Monitor prestazioni.
Che cos'è Monitor prestazioni (perfmon)?
Essendo stato disponibile in varie iterazioni fin dai primi giorni di Windows, Monitor prestazioni è uno snap-in MMC in Windows che consente di monitorare l'utilizzo del sistema e varie metriche delle prestazioni. La visualizzazione predefinita all'apertura mostra alcune aree e metriche in tempo reale, tra cui:
- Monitor prestazioni: visualizzazione in tempo reale delle metriche
- Set di raccolta dati: raccolta dati definita entro un determinato intervallo di tempo
- Report: dati raccolti nei set di agenti di raccolta dati
Domande prima della raccolta dati
Dopo aver riscontrato problemi, scoprire altre informazioni su cosa è accaduto prima di qualsiasi risoluzione dei problemi e raccolta di dati.
- Che tipo di problema?
- Questo problema può essere riprodotto?
- Il problema si verifica sporadicamente? In tal caso, quali azioni ha eseguito l'utente?
- Esiste un modello osservato? In tal caso, che tipo di modello?
- Succede una sola volta e non si verifica di nuovo?
Ad esempio, si verifica un problema di utilizzo elevato della CPU sporadicamente. In alcuni casi, questo problema si verifica cinque minuti dopo l'avvio del sistema, a volte dopo due ore e così via. Non viene osservato alcun modello. Quando si cerca Gestione attività o altri strumenti di monitoraggio, non è possibile osservarlo oppure non si è certi che l'output degli strumenti di monitoraggio mostri cosa accade.
In questo caso, è necessaria una panoramica generale delle risorse di sistema. Questa operazione può essere ottenuta con un Monitor prestazioni a esecuzione prolungata.
Nota
Monitor prestazioni non ha accesso al kernel e non registra tali informazioni. Inoltre, Monitor prestazioni è leggero rispetto ad altri strumenti di registrazione per problemi di utilizzo elevato della CPU ed è uno strumento predefinito. È possibile eseguire Monitor prestazioni in locale o in remoto.
Eseguire Monitor prestazioni in locale
È possibile aggiungere contatori in base alle esigenze. Aprire un prompt dei comandi con privilegi elevati ed eseguire i comandi seguenti:
Creare un set di agenti di raccolta dati:
Logman.exe create counter CORE_%computername% -f bin -v mmddhhmm -max 2048 -c "\Memory\*" "\Cache\*" "\Objects\*" "\Network Interface(*)\*" "\Paging File(*)\*" "\PhysicalDisk(*)\*" "\LogicalDisk(*)\*" "\Processor(*)\*" "\Processor Information(*)\*" "\Process(*)\*" "\Server\*" "\System\*" "\Server Work Queues(*)\*" "\Terminal Services\*" "\Terminal Services Session(*)\*" -si 00:00:01
Nota
-max 2048
indica che la dimensione massima del file di log è 2 GB.-si 00:00:01
indica che l'intervallo è1
secondo. È possibile modificare questa impostazione in base alle proprie esigenze.Avviare il set di agenti di raccolta dati:
logman start CORE_%computername%
Arrestare la traccia che verrà archiviata in c:\perflogs\Admin:
logman stop CORE_%computername%
Eseguire Monitor prestazioni in remoto
Per configurare Monitor prestazioni per monitorare il sistema remoto, aprire un prompt dei comandi con privilegi elevati ed eseguire i comandi seguenti:
Creare un set di agenti di raccolta dati:
Logman create counter <LOGNAME> -u <DOMAIN\USERNAME> * -f bincirc -v mmddhhmm -max 500 -c "\\<SERVERNAME>\LogicalDisk(*)\*" "\\<SERVERNAME>\Memory\*" "\\<SERVERNAME>\Network Interface(*)\*" "\\<SERVERNAME>\Paging File(*)\*" "\\<SERVERNAME>\PhysicalDisk(*)\*" "\\<SERVERNAME>\Process(*)\*" "\\<SERVERNAME>\Redirector\*" "\\<SERVERNAME>\Server\*" "\\<SERVERNAME>\System\*" "\\<SERVERNAME>\Terminal Services\*" "\\<SERVERNAME>\Processor(*)\*" "\\<SERVERNAME>\Cache\*" -si 00:00:02
Nota
Sostituire <DOMAIN\USERNAME> con le rispettive credenziali utente e <SERVERNAME> con il nome del server problematico.
Avviare l'agente di raccolta dati eseguendo il comando seguente:
logman start <LOGNAME>
Quando il server smette di rispondere, arrestare l'agente di raccolta dati eseguendo il comando seguente:
logman stop <LOGNAME>
Il log Monitor prestazioni si trova nella cartella C:\PERFLOGS. Comprimere quindi il .blg
file e caricarlo nell'area di lavoro dopo che si è verificato il problema.
Dopo aver eseguito Monitor prestazioni per uno o due giorni lavorativi, è possibile analizzare il log per verificare se esistono modelli. Quali processi aumentano la CPU? E i processi sono uguali o diversi ogni giorno o ora?
In base ai risultati, andare oltre i passaggi successivi per scoprire di più su cosa li fa picchiare la CPU. Identificare la causa radice tracciando la sequenza di processi, thread, moduli e funzioni.
Esempi di risoluzione dei problemi
Vedere gli esempi seguenti di uso di TroubleShootingScript (TSS) per raccogliere dati e CpuStres per simulare l'attività della CPU.
Uso di TSS
TSS può ottenere una traccia di utilizzo elevato della CPU quando la CPU raggiunge una determinata soglia:
Scaricare TSS ed estrarlo nella cartella C:\tss nel computer interessato.
Da un prompt dei comandi di PowerShell con privilegi elevati eseguire il cmdlet seguente dalla cartella C:\tss .
.\TSS.ps1 -perfmon general -WaitEvent HighCPU:90 -StopWaitTimeInSec 100
Nota
Attendere che si verifichi il problema di utilizzo elevato della CPU. Quando l'utilizzo della CPU supera <CpuThreshold>%, continuare a raccogliere dati per una durata di
StopWaitTimeInSec
settconds (il valore predefinito è 60).Di seguito sono riportati altri esempi:
-
.\TSS.ps1 -PerfMon General -PerfIntervalSec 5 -WaitEvent HighCPU:90
PerfMon
rappresenta Monitor prestazioni con un intervallo breve. -
.\TSS.ps1 -PerfMonLong SMB -PerfLongIntervalMin 11 -WaitEvent HighCPU:90
PerfMonLong
rappresenta Monitor prestazioni con un intervallo lungo.
-
Da un nuovo prompt dei comandi di PowerShell con privilegi elevati eseguire il cmdlet seguente dalla cartella C:\tss .
.\TSS.ps1 -Stop
Nota
Se la traccia non si arresta dopo cinque minuti, arrestarla.
TSS supporta i monitoraggi delle prestazioni. È possibile visualizzare i nomi dettagliati dei contatori delle prestazioni eseguendo il .\TSS.ps1 -ListSupportedPerfCounter
cmdlet .
Avviare l'acquisizione dei contatori delle prestazioni con il General
contatore impostato eseguendo il cmdlet :
.\TSS.ps1 -PerfMon General
Se si desidera modificare l'intervallo per il log delle prestazioni, usare -PerfIntervalSec
(l'unità è seconda) o -PerfIntervalMin
(l'unità è minuto). Ad esempio, .\TSS.ps1 -PerfMon General -PerfIntervalSec 1
specifica un intervallo di un secondo.
Di seguito sono riportati altri esempi del .\TSS.ps1 -PerfMon <CounterSetName>
cmdlet:
Avviare Monitor prestazioni con contatori generali (CPU, memoria, disco e così via) e un intervallo di 5 secondi:
.\TSS.ps1 -PerfMon General -PerfIntervalSec 5
Avviare Monitor prestazioni (
Long
) con contatori SMB (contatori SMB e contatori generali) e un intervallo di 11 minuti:.\TSS.ps1 PerfMonLong SMB -PerfLongIntervalMin 11
È anche possibile farlo con Monitor prestazioni per avviare la traccia quando l'utilizzo della CPU raggiunge una certa quantità, ma è complicato e dispendioso in termini di tempo.
Uso di CpuStres
È possibile usare CpuStres per simulare un'attività di utilizzo elevato della CPU eseguendo diversi thread. Dopo aver tracciato il problema di utilizzo elevato della CPU per sei minuti, Monitor prestazioni mostra le lacune nel grafico seguente, che è un problema:
Processore | Minimo | Massimo | Media |
---|---|---|---|
% Tempo processore | 4.688% | 100% | 81.605% |
Quando si aggiungono contatori per Processore: %ProcessorTime e si esaminano le istanze, si noterà che CPUStres64.exe ha il consumo più elevato. Esistono istanze in cui %Tempo processore ha superato il 100%, raggiungendo circa il 180% nei dati, a indicare picchi significativi.
% Tempo processore | Minimo | Massimo | Media |
---|---|---|---|
CPUSTRES64 | 0% | 180.309% | 19.787% |
Controllare la lunghezza della coda del processore, la media di cui è > 10. Si tratta di un problema. Eseguire il drill-down degli utenti che usano % Tempo processore.
Si tratta di una limitazione di Monitor prestazioni. Può solo mostrare così tanti dati.
Contatori delle prestazioni per l'utilizzo della CPU
Per problemi di utilizzo elevato della CPU, controllare prima di tutto l'utilizzo della CPU in Gestione attività. Se l'utilizzo della CPU supera continuamente l'85%, indica che il sistema si trova in un collo di bottiglia della CPU. Ecco l'elenco dei contatori che devono essere controllati:
- Processore: % tempo processore
- Processore: % tempo utente
- Processore: % tempo privilegio
- Processore: % tempo di interruzione
- Sistema: Lunghezza coda processore
- Sistema: chiamate/sec
- Sistema: commutatori di contesto/sec
- Processo: Conteggio thread
- Processo: Conteggio handle
Esaminare i contatori seguenti monitorati per diversi aspetti delle prestazioni:
Componente | Aspetto delle prestazioni monitorato | Contatori da monitorare |
---|---|---|
Processore | Utilizzo | Processore: % tempo processore (tutte le istanze) Processore: % tempo DPC Processore: % tempo di interruzione Processore: % tempo con privilegi Processore: % tempo utente |
Processore | Colli di bottiglia | Processore: % tempo processore (tutte le istanze) Processore: % tempo DPC Processore: % tempo di interruzione Processore: % tempo con privilegi Processore: % tempo utente Processore: interrupt/sec Processore: DPCs in coda/sec Sistema: commutatori di contesto/sec Sistema: Chiamate di sistema/sec Sistema: Lunghezza coda processore (tutte le istanze) |
Nome contatore | Metric |
---|---|
Lunghezza coda processore (PQL) | Se sono presenti due o più istanze per processore e l'utilizzo della CPU è elevato, controllare i processi per un utilizzo elevato della CPU. Controllare anche i commutatori di contesto, % DPC Time e % Interrupt Time. |
% Tempo processore | 0-50%: integro. 50-80%: monitoraggio/avviso. 80-100%: critico. Il sistema potrebbe funzionare lentamente. |
% DPC Time | % Tempo> processore 85% e % tempo DPC> 15%: verificare se sono costantemente superiori a questi livelli. I picchi brevi sono ok. Ad esempio, solo in un processore con tempo processore del 100% e più del 50% di tempo DPC. |
% tempo di interruzione | Tempo di interruzione elevato della CPU: più del 30% del tempo di interruzione. Una quantità elevata di % di tempo di interruzione nel processore potrebbe indicare un problema hardware o driver. Tempo di interruzione cpu molto elevato: più del 50% di tempo di interrupt. Una quantità molto elevata di tempo di interruzione nel processore potrebbe indicare un problema hardware o driver. |
Riferimenti
- Monitoraggio prestazioni Windows
- LOGMAN (perfmon)
- Procedura: Usare Monitor prestazioni per raccogliere dati di traccia eventi
- Utilizzo del processore in modalità utente e modalità con privilegi
Dichiarazione di non responsabilità sulle informazioni e sulle soluzioni di terze parti
Le informazioni e la soluzione in questo documento rappresentano la visualizzazione corrente di Microsoft Corporation su questi problemi a partire dalla data di pubblicazione. Questa soluzione è disponibile tramite Microsoft o tramite un provider di terze parti. Microsoft non consiglia specificamente alcun provider di terze parti o una soluzione di terze parti che questo articolo potrebbe descrivere. Potrebbero essere presenti anche altri provider di terze parti o soluzioni di terze parti che questo articolo non descrive. Poiché Microsoft deve rispondere a condizioni di mercato mutevoli, queste informazioni non devono essere interpretate come un impegno da parte di Microsoft. Microsoft non può garantire o approvare l'accuratezza di qualsiasi informazione o di qualsiasi soluzione presentata da Microsoft o da qualsiasi provider di terze parti menzionato.
Microsoft non fornisce alcuna garanzia ed esclude tutte le rappresentazioni, le garanzie e le condizioni, sia espressa, implicita o legale. Queste condizioni includono, ad esempio, rappresentazioni, garanzie o condizioni di titolo, non violazione, condizioni soddisfacenti, commerciabilità e idoneità per uno scopo specifico, riguardanti qualsiasi servizio, soluzione, prodotto o qualsiasi altro materiale o informazione. In nessun caso Microsoft sarà responsabile di qualsiasi soluzione di terze parti menzionata in questo articolo.