Amministrazione di Windows

Misurazione dei battiti del server

Steven Choy

 

Panoramica:

  • Personalizzazione di Performance Monitor
  • Indicazioni sulla modalità e la frequenza della misurazione
  • Panoramica sui contatori principali e su cosa controllare

Indice

Creazione di risultati più leggibili
Modalità e frequenza della misurazione
Collo di bottiglia del disco rigido
Collo di bottiglia della memoria
Collo di bottiglia del processore
Collo di bottiglia della rete
Collo di bottiglia del processo
Conclusioni

È lunedì mattina, immagina di arrivare in ufficio e trovare un utente ansioso che lamenta un server troppo lento. Da dove iniziare per aiutarlo? Performance

Monitor, è uno strumento utile, integrato in Windows®, che può aiutarti a diagnosticare il problema.

Puoi accedere a Performance Monitor digitando perfmon nel prompt dei comandi o scegliendo Performance Monitor o Monitoraggio affidabilità e Performance Monitor (in Windows Vista® e Windows Server® 2008) dal menu Strumenti di amministrazione. Per aggiungere i contatori delle prestazioni e gli oggetti da monitorare, fai semplicemente clic sul segno più e seleziona una delle opzioni disponibili.

Allora, come si misura il battito di un server? Esistono più di 60 oggetti di prestazione di base e ogni oggetto contiene più contatori. In quest'articolo illustrerò i contatori che rivelano i segni vitali di un server e descriverò i tipici intervalli di campionamento che i tecnici del supporto di Microsoft® utilizzano di solito per risolvere i problemi relativi alle prestazioni.

Ovviamente, un valore di riferimento è un fattore critico durante la risoluzione dei problemi. Poiché il carico del server dipende dai requisiti aziendali e varia, inoltre, di tanto in tanto a seconda del ciclo aziendale, è importante stabilire un valore di riferimento che deriva dal carico di lavoro normale in un determinato periodo di tempo. Ciò consente di osservare le modifiche e identificare le tendenze.

Creazione di risultati più leggibili

Prima di tuffarmi nell'analisi dei contatori che rappresentano i segni vitali dei server, illustro due suggerimenti che renderanno più facile la misurazione dei segni vitali dei server utilizzando Performance Monitor. Questi suggerimenti non sono necessari in Windows Vista e Windows Server 2008, ma se si esegue Performance Monitor su versioni precedenti di Windows, allora queste due operazioni possono rivelarsi estremamente utili.

Innanzitutto, puoi rimuovere tutto il rumore di esempio che distrae e nasconde la vista grafica delle linee di tendenza. In Windows Vista e Windows Server 2008 lo strumento Performance Monitor è in grado di visualizzare fino a 1000 punti dati nella vista grafica. Nelle versioni precedenti di Windows il limite è fissato a 100 punti dati. Con un numero maggiore di 100 punti, Performance Monitor esegue il bucket dei punti dati. Un bucket è rappresentato da una linea verticale, che indica il punto minimo, medio e massimo dei punti di campionamento contenuti nel bucket.

Come si può vedere dal grafico nella Figura 1, è difficile individuare la linea di tendenza quando vengono visualizzati così tanti dati allo stesso tempo. Il grafico della Figura 2 mostra quanto sia più semplice individuare subito i dati una volta eliminate tutte le informazioni visive estranee. Per ulteriori informazioni sul metodo di eliminazione delle linee verticali, vedere l'articolo della Knowledge Base disponibile sul sito Web support.microsoft.com/kb/283110.

fig01.gif

Figura 1 Dati sulle prestazioni mostrati con bucket dispersivi e senza virgole (fare clic sull'immagine per ingrandirla)

fig02.gif

Figura 2 Una visualizzazione più chiara dei dati con virgole come separatore (fare clic sull'immagine per ingrandirla)

Il secondo suggerimento è quello di aggiungere le virgole come separatori nelle numerazioni, facilitando così la lettura dei valori nei contatori. In Windows Vista e Windows Server 2008 le virgole come separatori sono attivate per impostazione predefinita. Nelle precedenti versioni di Windows, tuttavia, lo strumento Performance Monitor non attiva le virgole per impostazione predefinita.

Sembra che questo non comporti una grande differenza, ma guarda la Figura 1, che mostra i contatori di prestazione senza le virgole e poi la Figura 2 che presenta i contatori con le virgole. La seconda figura è molto più leggibile. Per alcune semplici istruzioni sull'aggiunta delle virgole come separatori ai contatori delle prestazioni in Windows XP, vedere l'articolo della Knowledge Base all'indirizzo Web support.microsoft.com/kb/300884.

Modalità e frequenza della misurazione

I colli di bottiglia si verificano quando una risorsa raggiunge la propria capacità, causando un rallentamento delle prestazioni dell'intero sistema. I colli di bottiglia sono di solito causati da risorse configurate in modo errato o insufficienti, da componenti malfunzionanti e da richieste di risorse non corrette da parte di un programma.

Esistono cinque principali aree di risorsa che possono causare i colli di bottiglia e influire sulle prestazioni del server: il disco fisico, la memoria, il processo, la CPU e la rete. Se una qualsiasi di queste risorse è sovrautilizzata, il server o l'applicazione può diventare notevolmente lenta o addirittura bloccarsi. Analizzerò ciascuna di queste cinque aree, fornendo istruzioni sui contatori da utilizzare e offrendo delle soglie consigliate per misurare gli impulsi del server.

Poiché l'intervallo di campionamento ha un impatto significativo sulla dimensione del file di registro e sul carico del server, tale intervallo deve essere impostato sulla base del tempo medio trascorso prima del verificarsi del problema; in tal modo, puoi stabilire un valore di riferimento prima che il problema si verifichi di nuovo. Ciò ti consentirà di individuare qualsiasi tendenza che porta al problema.

Quindici minuti sono un buon lasso di tempo come valore di riferimento durante le operazioni normali. Se il tempo medio trascorso prima del verificarsi del problema è di circa quattro ore, imposta l'intervallo di campionamento su 15 secondi. Se il tempo medio trascorso prima del verificarsi del problema è di otto o più ore, imposta l'intervallo di campionamento su non meno di cinque minuti; altrimenti, si avrà un file di registro di dimensioni enormi, che rende più difficile l'analisi dei dati.

Collo di bottiglia del disco rigido

Poiché il disco di sistema memorizza e gestisce i programmi e i dati sul server, un collo di bottiglia che interessi la velocità e l'utilizzo del disco avrà un grande impatto sulle prestazioni globali del server.

Se gli oggetti del disco non sono stati attivati sul server, per attivarli è necessario utilizzare gli strumenti della riga di comando Diskperf. Tenere inoltre presente che % Tempo disco può superare il 100% e, quindi, è preferibile utilizzare % Tempo di inattività, Media letture disco/sec e Media scritture disco/sec per avere un'idea più esatta di quanto spazio è disponibile sul disco rigido. Maggiori informazioni su % Tempo disco sono disponibili nell'articolo della Knowledge Base all'indirizzo Web support.microsoft.com/kb/310067.

Di seguito sono riportati i contatori su cui i tecnici del supporto Microsoft fanno affidamento in materia di monitoraggio del disco.

Disco logico\ % Spazio disponibile indica la percentuale di spazio disponibile sull'unità disco logica selezionata. Se tale percentuale scende al di sotto del 15%, prenderne nota perché si rischia che il sistema operativo rimanga senza spazio disponibile per memorizzare i file critici. Una soluzione possibile è aggiungere maggiore spazio su disco.

Disco fisico\ % Tempo di inattività indica la percentuale di tempo di inattività del disco durante l'intervallo di campionamento. Se questo contatore scende al di sotto del 20%, il disco di sistema è saturo. Prendere in considerazione la possibilità di sostituire il disco di sistema corrente con un disco di sistema più veloce.

Disco fisico\Media letture disco/sec misura il tempo medio, in secondi, per le operazioni lettura dei dati da disco. Se il numero è maggiore di 25 millisecondi (ms), significa che sul disco di sistema si verifica latenza quando si esegue la lettura da disco. Per i server di importanza critica che ospitano SQL Server® ed Exchange Server, la soglia accettabile è molto più bassa, approssimativamente dieci millisecondi. La soluzione più logica è quella di sostituire il disco di sistema attuale con un disco di sistema più veloce.

Disco fisico\Media scritture disco/sec indica il tempo medio, in secondi, necessario per le operazioni di scrittura dei dati su disco. Se il numero è maggiore di 25 millisecondi, nel disco di sistema si verifica latenza quando si esegue la scrittura su disco. Per i server di importanza critica che ospitano SQL Server ed Exchange Server, la soglia accettabile è molto più bassa, approssimativamente 10 millisecondi. La soluzione possibile è sostituire il disco di sistema con uno più veloce.

Disco fisico\Lunghezza media coda del disco Questo valore indica il numero di operazioni I/O che aspettano che il disco rigido diventi disponibile. Se il valore è maggiore del numero di assi più due, significa che il disco stesso potrebbe essere il collo di bottiglia.

Memoria\Byte di cache Questo valore indica la quantità di memoria utilizzata per la cache del file system. Potrebbe essere presente un collo di bottiglia del disco se questo valore è maggiore di 200 MB.

Collo di bottiglia della memoria

Un'insufficienza di memoria di solito è dovuta a RAM insufficiente, a problemi di memoria o al parametro di memoria collocato nel file boot.ini. Prima di arrivare ai contatori di memoria, è bene analizzare l'opzione /3GB.

L'aumento di memoria riduce l'attività I/O del disco e, a sua volta, migliora le prestazioni delle applicazioni. L'opzione /3GB è stata introdotta in Windows NT® in modo da fornire maggiore memoria ai programmi di modalità utente.

Windows utilizza uno spazio degli indirizzi virtuale di 4 GB (a prescindere da quanta RAM fisica è presente nel sistema). Per impostazione predefinita, i 2 GB inferiori sono riservati ai programmi di modalità utente e i 2 GB superiori sono riservati ai programmi di modalità kernel. Con l'opzione /3GB, ai processi di modalità utente vengono assegnati 3 GB. Certamente, questo avviene a scapito della memoria kernel, che avrà soltanto 1 GB di spazio per gli indirizzi virtuali. Ciò può causare problemi perché i byte del pool non di paging, i byte del pool di paging, le voci libere della tabella delle pagine di sistema e l'heap del desktop sono tutti raggruppati nello spazio di 1 GB. Pertanto, l'opzione /3GB deve essere utilizzata solo dopo aver eseguito dei test approfonditi nell'ambiente in uso.

Ciò è importante nel caso in cui si verifichi un collo di bottiglia relativo alla memoria. Se l'opzione /3GB non rappresenta la causa del problema, puoi utilizzare questi contatori per diagnosticare un potenziale collo di bottiglia della memoria.

Memoria\% byte vincolati in uso indica la percentuale di Byte vincolati al Limite memoria vincolata, ovvero la quantità di memoria virtuale utilizzata. Ciò indica che la memoria è insufficiente se il numero è maggiore di 80%. La soluzione ovvia è aggiungere ulteriore memoria.

Memoria\ % Mbyte disponibili indica la quantità di memoria fisica, in megabyte, disponibile per i processi in esecuzione. Se questo valore è inferiore al 5% della RAM fisica totale, significa che la memoria è insufficiente e ciò può aumentare l'attività di paging. Per risolvere questo problema, devi solo aggiungere ulteriore memoria.

Memoria\Voci libere tabella pagine di sistema indica il numero di voci della tabella pagine non attualmente in uso dal sistema. Se il numero è inferiore a 5.000, è possibile che si verifichi una perdita di memoria.

Memoria\Byte del pool non di paging indica le dimensioni, in byte, del pool non di paging. Si tratta di un'area di memoria di sistema per gli oggetti che non possono essere scritti su disco, ma devono invece rimanere nella memoria fisica finché non vengono allocati. Possono verificarsi dei problemi di memoria se il valore è maggiore di 175 MB (o 100 MB con l'opzione /3GB). Un tipico ID evento 2019 è memorizzato nel registro eventi di sistema.

Memoria\Byte del pool di paging indica le dimensioni, in byte, del pool di paging. Si tratta di un'area di memoria di sistema utilizzata per gli oggetti che possono essere scritti su disco quando non vengono utilizzati. Si possono verificare dei problemi di memoria se questo valore è maggiore di 250 MB (o 170 MB con l'opzione /3GB). Un ID evento tipico 2020 è memorizzato nel registro eventi di sistema.

Memoria\Pagine liberate al secondo indica la frequenza di lettura o scrittura delle pagine da o su disco per risolvere gli errori di pagina di memoria hardware. Se il valore è maggiore di 1.000, a causa di paging eccessivo, si possono verificare dei problemi di memoria.

Collo di bottiglia del processore

Un processore sopraffatto può dipendere dal processore stesso che non offre abbastanza potenza oppure da un'applicazione inefficiente. Verificare se il processore impiega molto tempo nell'esecuzione del paging a causa di memoria fisica insufficiente. Quando si esamina un potenziale collo di bottiglia del processore, i tecnici del supporto Microsoft utilizzano i seguenti contatori.

Processore\ % Tempo processore indica la percentuale di tempo impiegata dal processore per eseguire un thread attivo. Se la percentuale è superiore all'85%, il processore viene sopraffatto e il server potrebbe richiedere un processore più veloce.

Processore\ % Tempo utente indica la percentuale di tempo trascorso in cui il processore si trova in modalità utente. Se tale valore è elevato, il server è occupato con l'applicazione. In questo caso, una soluzione possibile è ottimizzare l'applicazione che esaurisce le risorse del processore.

Processore\ % Tempo di Interrupt indica il tempo trascorso dai processori ricevendo e servendo interrupt hardware durante intervalli di campionamento specifici. Tale contatore indica un possibile problema hardware se il valore è maggiore del 15%.

Sistema\Lunghezza coda processore indica il numero di thread nella coda del processore. Il server non dispone di abbastanza potenza di processore se il valore è maggiore del doppio del numero di CPU per un lungo periodo di tempo.

Collo di bottiglia della rete

Certamente, un collo di bottiglia della rete influisce sulla capacità del server di inviare e ricevere i dati attraverso la rete. Può verificarsi un problema con la scheda di rete sul server oppure la rete potrebbe essere satura ed è necessario segmentarla. Puoi utilizzare i seguenti contatori per eseguire una diagnosi dei possibili colli di bottiglia della rete.

Interfaccia di rete\Totale byte/sec indica la frequenza con cui i byte vengono inviati e ricevuti su ogni scheda di rete, inclusi i caratteri di framing. Se viene utilizzato oltre il 70% dell'interfaccia, la rete è satura. Per una NIC da 100 Mbps, l'interfaccia utilizzata è 8,7 MB/sec (100 Mbps = 100000 kbps = 12,5 MB/sec* 70%). In tal caso, potresti decidere di aggiungere una scheda di rete più veloce o segmentare la rete.

Interfaccia di rete\Lunghezza della coda di output indica la lunghezza della coda dei pacchetti in uscita, misurata in pacchetti. Se la lunghezza è superiore a due, si verifica una saturazione di rete. Per risolvere questo problema, aggiungi una scheda di rete più veloce o segmenta la rete.

Collo di bottiglia del processo

Le prestazioni del server peggiorano notevolmente se il processo presenta un funzionamento anomalo oppure i processi non sono ottimizzati. La perdita di handle e thread farà rallentare un server e un utilizzo eccessivo del processore porterà al blocco del server. I seguenti contatori sono indispensabili per diagnosticare i colli di bottiglia relativi al processo.

Processo\Conteggio degli handle misura il numero totale di handle che sono attualmente aperti da un processo. Questo contatore indica una probabile perdita di handle se il numero è maggiore di 10.000.

Processo\Conteggio dei thread indica il numero di thread attualmente attivi in un processo. Si potrebbe verificare una perdita di thread se tale numero è maggiore di 500 tra il numero minimo e massimo dei thread.

Processo\ Byte privati indica la quantità di memoria che questo processo ha allocato e che non può essere condivisa con altri processi. Se il valore è maggiore di 250 tra il numero minimo e massimo di thread, si potrebbe verificare una perdita di memoria.

Conclusioni

Ora conosci i contatori utilizzati dai tecnici del supporto Microsoft per diagnosticare i vari colli di bottiglia. Certamente, è probabile che utilizzerai un gruppo di contatori preferiti scelti apposta per soddisfare le tue esigenze specifiche. Puoi risparmiare tempo evitando di aggiungere i contatori tramite salvataggio manuale ogni volta che controlli i server. Fortunatamente, è presente un'opzione in Performance Monitor che consente di salvare in un modello tutti i contatori per un utilizzo futuro.

A coloro che si chiedono se è meglio eseguire Performance Monitor localmente o in modalità remota e quale peggioramento subiscono esattamente le prestazioni se Performance Monitor viene eseguito localmente, rispondo che tutto dipende dall'ambiente in uso. Il peggioramento delle prestazioni sul server è quasi trascurabile se gli intervalli sono impostati su un intervallo minimo di cinque minuti.

Performance Monitor può essere eseguito localmente se si è a conoscenza di un problema di prestazione sul server, poiché lo strumento potrebbe non essere in grado di acquisire i dati da un computer remoto quando le risorse sul server esauriscono. L'esecuzione in modalità remota da un computer centrale è più adatta quando si desidera monitorare o eseguire dei valori di riferimento per server multipli.

Steven Choy è Senior Premier Field Engineer presso la divisione Premier Field Engineering di Microsoft. Ha supportato agenzie governative e clienti commerciali nella gestione dei progetti di distribuzione desktop e migrazione, la gestione delle patch e i criteri di gruppo. Attualmente è impegnato con la virtualizzazione e l'integrità del server.

© 2008 Microsoft Corporation e CMP Media, LLC. Tutti i diritti riservati. È vietata la riproduzione completa o parziale senza autorizzazione.