Contatori di prestazioni per la comunicazione di rete
La categoria .NET CLR Networking della console Prestazioni include i contatori che forniscono informazioni sui dati che un'applicazione invia e riceve in rete. Nella tabella che segue vengono descritti tali contatori di prestazioni.
Contatore prestazioni |
Oggetto di descrizione |
---|---|
Byte ricevuti |
Il numero cumulativo totale di byte ricevuti da tutti gli oggetti Socket all'interno di AppDomain da quando è iniziato il processo. Questo numero include i dati e le informazioni di protocollo non definite da TCP/IP. |
Byte inviati |
Il numero cumulativo di byte inviati da tutti gli oggetti Socket all'interno di AppDomain da quando è iniziato il processo. Questo numero include i dati e le informazioni di protocollo non definite da TCP/IP. |
Connessioni stabilite |
Il numero cumulativo totale di oggetti Socket per socket di flusso che sono stati connessi all'interno di AppDomain da quando il processo si è avviato. |
Datagrammi ricevuti |
Il numero cumulativo totale di pacchetti datagramma ricevuti da tutti gli oggetti Socket all'interno di AppDomain da quando è iniziato il processo. |
Datagrammi inviati |
Il numero cumulativo totale di pacchetti datagramma inviati da tutti gli oggetti Socket all'interno di AppDomain da quando è iniziato il processo. |
Durata media di HttpWebRequest |
Tempo medio di completamento per tutti gli oggetti HttpWebRequest terminati nell'ultimo intervallo all'interno di AppDomain a partire dall'inizio del processo. |
Tempo di coda di HttpWebRequest |
Tempo medio di presenza in coda per tutti gli oggetti HttpWebRequest usciti dalla coda nell'ultimo intervallo all'interno di AppDomain a partire dall'inizio del processo. |
HttpWebRequests Created/sec |
Il numero di oggetti HttpWebRequest creati al secondo all'interno di AppDomain. |
HttpWebRequests Queued/sec |
Il numero di oggetti HttpWebRequest aggiunti alla coda al secondo all'interno di AppDomain. |
Oggetti HttpWebRequest interrotti al secondo |
Il numero di oggetti HttpWebRequest in cui l'applicazione ha chiamato il metodo Abort al secondo all'interno di AppDomain. |
HttpWebRequests Failed/sec |
Il numero di oggetti HttpWebRequest che hanno ricevuto un codice di stato con errori dal server al secondo all'interno di AppDomain. |
Note
Sono disponibili molte classi di contatori delle prestazioni per la comunicazione di rete supportati:
I contatori di eventi che misurano il numero di occorrenze dell'evento.
Contatori di dati che misurano la quantità di dati inviati o ricevuti.
I contatori di durata che misurano quanto tempo prendono i diversi processi. I tempi vengono misurati sugli oggetti dopo ogni intervallo (generalmente in secondi) in cui risultano stati diversi.
Contatori per intervallo che misurano il numero di oggetti che stanno effettuando una particolare transizione per intervallo (generalmente al secondo).
I contatori delle prestazioni per la comunicazione di rete degli eventi includono gli elementi seguenti:
Connessioni stabilite
Datagrammi ricevuti
Datagrammi inviati
Questi contatori delle prestazioni indicano i conteggi di byte dall'inizio del processo. I conteggi delle connessioni Socket stabiliti includono le chiamate esplicite al metodo Socket da un'applicazione per una connessione al socket di flusso stabilita e da chiamate interne effettuate da altre classi (ad esempio, HttpWebRequest, FtpWebRequest, WebCliente TcpClient) alla classe Socket
I conteggi per Datagrammi ricevuti e Datagrammi inviati includono pacchetti datagramma inviati o ricevuti mediante chiamate esplicite al metodo Socket da un'applicazione e da chiamate interne effettuate dalle altre classi (ad esempio, UdpClient) a Socket. . È possibile inoltre utilizzare i conteggi Datagrammi ricevuti e Datagrammi inviati per fornire una misura molto semplice di quanti byte sono stati inviati o ricevuti mediante datagrammi presupponendo una dimensione media per datagramma.
I contatori delle prestazioni per la comunicazione di rete dei dati includono gli elementi seguenti:
Byte ricevuti
Byte inviati
I contatori precedenti indicano i conteggi di byte dall'inizio del processo.
Sono disponibili due contatori di durata che misurano quanto tempo impiegano gli oggetti HttpWebRequest a eseguire l'intero ciclo di vita o solo una sua parte:
Durata media di HttpWebRequest
Tempo di coda di HttpWebRequest
Per il contatore di durata media di HttpWebRequest, la durata della maggior parte degli oggetti HttpWebRequest inizia sempre con l'ora in cui viene creato l'oggetto fino all'ora in cui il flusso di risposte viene chiuso dall'applicazione. Esistono due casi non comuni:
Se l'applicazione non chiama mai i metodi GetResponse o BeginGetResponse, viene ignorata la durata dell'oggetto HttpWebRequest.
Se l'oggetto HttpWebRequest genera un'eccezione WebException durante la chiamata ai metodi GetResponse o EndGetResponse, la durata termina quando l'eccezione viene generata. Tecnicamente il flusso di risposte sottostante viene anche chiuso a quel punto (il flusso di risposte restituito all'utente è effettivamente un flusso di memoria contenente una copia del flusso di risposte).
Sono disponibili quattro contatori che tengono traccia di determinate problematiche dell'oggetto HttpWebRequest per intervallo. Questi contatori delle prestazioni possono supportare gli sviluppatori di applicazioni, gli amministratori e lo staff di supporto a comprendere meglio le attività degli oggetti HttpWebRequest. Fra i contatori sono inclusi i seguenti:
HttpWebRequests Created/sec
HttpWebRequests Queued/sec
Oggetti HttpWebRequest interrotti al secondo
HttpWebRequests Failed/sec
Per il contatore di oggetti HttpWebRequests interrotti al secondo, vengono contate anche le chiamate interne a Abort. Queste chiamate interne vengono di solito determinate da timeout che eventualmente un'applicazione desidera misurare.
Il contatore HttpWebRequests Failed/sec contiene il numero di oggetti HttpWebRequest che hanno ricevuto un codice di stato con errori dal server al secondo. Indica che il codice di stato ricevuto dal server Http alla fine della richiesta non era compreso nell'intervallo fra 200 e 299. I codici di stato gestiti e che determinano una nuova richiesta (ad esempio, molti dei 401 codici di stato non autorizzati) avranno un esito negativo o meno in base al risultato del tentativo. Se l'applicazione rileva un errore basato sul tentativo, il contatore viene incrementato.
È possibile accedere ai contatori delle prestazioni per la comunicazione di rete ed effettuarne la gestione utilizzando PerformanceCounter e le relative classi nello spazio dei nomi System.Diagnostics. I contatori delle prestazioni per le comunicazioni di rete possono essere visualizzati anche con la console Windows Performance Monitor.
I contatori delle prestazioni per la comunicazione di rete devono essere abilitati nel file di configurazione da utilizzare. Tutti i contatori delle prestazioni per le comunicazioni di rete sono abilitati o disabilitati con una sola impostazione nel file di configurazione. Non è possibile abilitare o disabilitare singoli contatori delle prestazioni per le comunicazioni di rete. Per ulteriori informazioni, vedere Elemento <performanceCounter> (Impostazioni di rete).
Se i contatori di rete sono abilitati, verranno creati e aggiornati contatori delle prestazioni per-AppDomain e globali. Se disabilitata, l'applicazione non fornirà dati del contatore delle prestazioni di rete.
I contatori delle prestazioni vengono raggruppati in Categorie. Un'applicazione può elencare tutte le categorie con il codice di esempio seguente:
PerformanceCounterCategory[] Array = PerformanceCounterCategory.GetCategories();
for (int i = 0; i < Array.Length; i++)
{
Console.Out.WriteLine("{0}. Name={1} Help={2}", i, Array[i].CategoryName, Array[i].CategoryHelp);
}
I contatori delle prestazioni per la comunicazione di rete sono elencati in due categorie:
".NET CLR Networking 2" - i contatori di prestazioni originali introdotti su .NET Framework Versione 2 e supportati su .NET Framework Versione 2 e versioni successive.
".NET CLR Networking 4.0.0.0" - Tutti i contatori del socket sopra indicati più i nuovi contatori delle prestazioni supportati su .NET Framework Versione 4 e versioni successive. Questi nuovi contatori forniscono informazioni sulle prestazioni degli oggetti HttpWebRequest.
Per ulteriori informazioni sull'accesso e la gestione di contatori delle prestazioni in un'applicazione, vedere Contatori di prestazioni in .NET Framework.
Vedere anche
Riferimenti
Elemento <performanceCounter> (Impostazioni di rete)