Share via


Introduzione al monitoraggio dei valori limite delle prestazioni

Aggiornamento: novembre 2007

Il meccanismo con il quale Windows raccoglie i dati sulle prestazioni delle varie risorse di sistema è il contatore delle prestazioni. Windows contiene un insieme predefinito di contatori delle prestazioni con cui è possibile interagire. Alcuni di questi si trovano su tutti i computer Windows 2000, mentre altri appartengono solo a determinate applicazioni e si trovano solo su certi computer. Ogni contatore si riferisce a una determinata area della funzionalità di sistema. Alcuni esempi potrebbero comprendere i contatori che controllano i tempi di attività del processore, l’uso di memoria o il numero di byte ricevuti durante una connessione in rete. È possibile utilizzare un’istanza del componente PerformanceCounter per connettersi direttamente ai contatori delle prestazioni esistenti e interagire con i relativi dati in modo dinamico.

Un contatore delle prestazioni esegue il monitoraggio del comportamento degli oggetti prestazioni su un computer. Per oggetti delle prestazioni si intendono componenti fisici, quali processori, dischi e memoria, e oggetti di sistema, come processi e thread. In Visual Studio e in Windows Software Development Kit (SDK) tali oggetti prestazioni appaiono sotto forma di categorie. I contatori di sistema relativi allo stesso oggetto prestazioni sono raggruppati in categorie che indicano il comune stato attivo. Quando si crea un’istanza del componente PerformanceCounter, si indica in primo luogo la categoria con cui interagirà il componente, quindi si sceglie un contatore con cui interagire all’interno di tale categoria.

In Windows una categoria di contatori è ad esempio la categoria Memory. I contatori di sistema all’interno di questa categoria tengono traccia dei dati, come ad esempio i byte disponibili e i byte memorizzati nella cache. Per gestire i byte memorizzati nella cache dell’applicazione, creare un’istanza del componente PerformanceCounter e connetterla alla categoria Memory, quindi scegliere il contatore appropriato in tale categoria (in questo caso Cached Bytes).

In alcune situazioni, le categorie sono ulteriormente suddivise in istanze. Le istanze tengono traccia dei dati relativi a più occorrenze dell’oggetto cui una categoria fa riferimento. È importante notare che le istanze si applicano alla categoria nel suo complesso, piuttosto che a singoli contatori. Ogni contatore di una categoria dispone di una propria istanza definita per la categoria. La categoria Process contiene ad esempio istanze chiamate "Idle" e "System". Ogni contatore della categoria Process specifica i dati in questi due modi, mostrando informazioni sui processi inattivi o sui processi di sistema. La struttura della categoria e dei contatori è la seguente:

Categorie, istanze e contatori

Istanze delle categorie di Visual Basic

Come si può osservare, la categoria Process contiene due istanze, per cui entrambi i contatori nella categoria contengono istanze di Idle e System. Per ulteriori informazioni sulle istanze, vedere Procedura: aggiungere e rimuovere istanze di contatori delle prestazioni.

Anche se il sistema rende disponibili un maggior numero di categorie di contatori, le categorie predefinite con cui si interagirà più frequentemente sono Cache, Memory, Objects, PhysicalDisk, Processor, Server, System e Thread.

Dati del contatore delle prestazioni

I contatori delle prestazioni registrano i valori relativi a varie parti del sistema. Questi valori non vengono archiviati come voci, ma persistono fino a quando un handle rimane aperto per la rispettiva categoria in memoria. Il processo di recupero dei dati da un contatore di prestazioni viene chiamato campionamento. Quando si esegue un campionamento, si recupera il valore immediato di un contatore o un valore calcolato.

A seconda di come viene definito un contatore, il relativo valore può essere l’aspetto più recente dell’uso della risorsa, detto anche valore istantaneo, oppure può essere la media delle ultime due misurazioni nel periodo di tempo tra i campioni. Quando ad esempio si recupera un valore dal contatore Thread Count della categoria Process, si recupera il numero di thread per un determinato processo com’era al momento dell’ultima misurazione. Si tratta di un valore istantaneo. Tuttavia, se si recupera il contatore Pages/Sec della categoria Memory, si recupera una velocità al secondo basata sul numero medio di pagine di memoria recuperate durante gli ultimi due campionamenti.

L’utilizzo delle risorse può variare enormemente in base al lavoro svolto nelle diverse ore del giorno. Per questo motivo, i contatori delle prestazioni che evidenziano le incidenze di utilizzo in un intervallo di tempo sono maggiormente informativi rispetto alle medie dei valori di contatori istantanei. Le medie possono comprendere dati per l’avvio del servizio o altri eventi che possono provocare uno scostamento notevole dei valori dalla loro gamma normale per un breve periodo, falsando quindi i risultati.

Il componente PerformanceCounter rende disponibili le funzionalità per il requisito di monitoraggio più comune delle prestazioni di Windows, ovvero la connessione a un contatore esistente sul server e la lettura e la scrittura di valori su di esso. Funzionalità aggiuntive, ad esempio la modellazione di dati complessi, sono disponibili direttamente tramite Performance Monitor di Windows. È ad esempio possibile utilizzare Performance Monitor per creare un grafico dei dati contenuti in un contatore, eseguire report sui dati, impostare gli avvisi e salvare dati in un log.

Utilizzo dei contatori delle prestazioni in applicazioni .NET

Mediante il componente PerformanceCounter, è possibile connettersi ai contatori esistenti installati nei server a cui si ha accesso oppure creare contatori delle prestazioni personalizzati. È possibile leggere dati da qualunque contatore e scrivere nei contatori personalizzati.

Quando ci si connette a un contatore delle prestazioni esistente, si specifica il computer su cui si trova il contatore, la categoria del contatore e il nome del contatore stesso. Si ha inoltre la possibilità di specificare l’istanza del contatore da usare, qualora il contatore contenesse più di un’istanza. È quindi possibile leggere tutti i dati dal contatore. È anche possibile enumerare le categorie, i contatori e le istanze esistenti sul computer mediante l'uso di codice oppure utilizzare Esplora server per visualizzare un elenco di contatori esistenti nel computer.

Quando si crea un nuovo contatore, è necessario specificare una categoria completamente nuova per il computer locale. Non è possibile aggiungere un nuovo contatore a una categoria esistente o creare nuovi contatori su un computer remoto. È tuttavia possibile scrivere e leggere dati da qualunque contatore personalizzato creato.

È possibile espandere il nodo Contatori delle prestazioni in Esplora server per visualizzare un elenco dei contatori esistenti sul server, ordinati per categoria, e le istanze in base alle quali sono classificati. È inoltre possibile trascinare un'istanza o un contatore delle prestazioni specifico da Esplora server a Progettazione componenti in Microsoft Visual Studio per creare un’istanza del componente PerformanceCounter, le cui proprietà sono automaticamente impostate in modo da puntare al contatore selezionato.

Se si utilizza un componente PerformanceCounter in un'applicazione ASP.NET, le impostazioni predefinite dell'account utente ASPNET limitano l'accesso ai contatori delle prestazioni. Per impostazione predefinita, l'account utente ASPNET può scrivere nei contatori delle prestazioni ma non può leggervi e non può creare nuove categorie. Per consentire la creazione di nuove categorie, è possibile utilizzare la rappresentazione con l'account ASPNET. È necessario che l'identità rappresentata disponga di privilegi sufficienti per la creazione di categorie. Se necessario, i contatori delle prestazioni potranno essere creati dal progetto di distribuzione. Per ulteriori informazioni, vedere Protezione delle applicazioni Web ASP.NET.

Nota:

È possibile creare una nuova categoria di contatore in Esplora server facendo clic con il pulsante destro del mouse sul nodo Contatori delle prestazioni e scegliendo il comando di menu appropriato. È anche possibile modificare una categoria esistente facendo clic con il pulsante destro del mouse sul nodo corrispondente.

Per ulteriori informazioni, vedere Esplora server/Esplora database.

Restrizioni

In questa versione, per visualizzare un contatore personalizzato appena creato, è possibile che occorra riavviare l'applicazione Performance Monitor (Perfmon.exe) installata con Windows 2000.

La classe PerformanceCounter non è completamente supportata in Microsoft Windows NT versione 4.0. È possibile leggere dai contatori di sistema, ma non è possibile creare o eliminare i contatori personalizzati, né scrivervi.

Vedere anche

Concetti

Analisi dei dati del contatore delle prestazioni

Architettura di programmazione del contatore delle prestazioni

Durata dei contatori delle prestazioni

Tipi di contatori delle prestazioni