In termini generali, le prestazioni indicano il grado di rapidità con cui un computer completa le attività di sistema e le applicazioni, rapidità che potrebbe essere frenata da un lento accesso ai dischi rigidi, da un’insufficiente quantità di memoria disponibile per tutti i processi in esecuzione oppure dalla velocità effettiva delle interfacce di rete.
Il principale strumento di analisi delle prestazioni su Windows Server è la console Prestazioni (Performance), che contiene gli strumenti Monitor di Sistema (System Monitor) e Avvisi e registri di prestazioni (Performance Logs).
Con il Monitor di sistema è possibile verificare in tempo reale i servizi di sistema e le risorse hardware utilizzate; è possibile monitorare sia il sistema dove si esegue lo strumento sia un server remoto. Il monitor visualizza i dati relativi a dei contatori liberamente selezionabili, in base alle nostre esigenze. Al nostro monitor possiamo aggiungere:
- oggetti prestazione, che in genere corrispondono ai principali componenti hardware, ad esempio memoria, processori e così via;
- contatori, associati ad ogni oggetto prestazione, rappresentano aspetti specifici di un sistema o di un servizio. Ad esempio, il contatore Pagine/sec associato all'oggetto Memoria tiene traccia dell'indice di paging della memoria.
Per monitorare le prestazioni di un computer diverso da quello in cui verrà eseguito il servizio Avvisi e registri di prestazioni, fare clic con il tasto destro sulla finestra del monitor, aggiungere un contatore, fare clic su Selezionare gli oggetti contatore dal computer e specificare il nome UNC (Universal Naming Convention, es. \\server2 ) del computer che si desidera controllare; eventualmente utilizzare la casella di testo Esegui come per specificare credenziali amministrative per il computer remoto.
Registri contatori (counters logs)
Se l’obiettivo è quello di memorizzare i dati prestazionali, anzi che limitarsi alla loro analisi in tempo reale, si deve utilizzare lo strumento Avvisi e registri di prestazioni, con il quale è possibile creare un registro contatore, personalizzabile con l'aggiunta di oggetti e contatori.
Per la creazione di un registro contatore, procedere come segue:
-
Aprire Prestazioni (Performance nelle versioni in lingua inglese) da Start, Pannello di controllo, Strumenti di amministrazione.
-
Espandere Avvisi e registri di prestazioni e posizionarsi su Registri contatori. Sulla destra potrete visualizzare l'elenco dei registri contatori esistenti, colorati di verde se il registro è in esecuzione, di rosso se in stato di arresto.
-
Rimanendo nell’area a destra, con il tasto destro scegliere Nuove impostazioni registro, digitare il nome del nuovo registro contatore e scegliere OK.
-
Si aprirà la scheda Generale; fare clic su Aggiungi oggetti e selezionare gli oggetti prestazioni da aggiungere o fare clic su Aggiungi contatori per selezionare i contatori da registrare. Come già indicato, possono anche essere selezionati oggetti e contatori relativi ad un sistema remoto.
-
Se si desidera modificare le informazioni predefinite sulla pianificazione e sui file, apportare le modifiche nelle schede File registro e Pianificazione.
-
Dopo aver creato un registro contatore, un registro traccia o un avviso, è possibile salvarlo per un utilizzo futuro, anche su altri sistemi: fare clic su di esso con il pulsante destro del mouse nel riquadro dei dettagli e quindi scegliere Salva impostazioni con nome. Sarà quindi possibile specificare un file htm in cui salvare le impostazioni. Per riutilizzare le impostazioni salvate per un nuovo registro o avviso, fare clic con il pulsante destro del mouse sul riquadro dei dettagli, quindi scegliere Nuove impostazioni registro da o Impostazioni nuovo avviso da. Esiste anche la possibilità di aprire il file HTML in Internet Explorer per visualizzare un grafico di Monitor di sistema.
Un registro contatore può essere memorizzato sotto diverse forme:
-
File di testo (delimitato da virgole): questa opzione definisce un file registro delimitato da virgole con estensione .csv. Utilizzare questo formato, ad esempio, per esportare i dati del registro in un foglio di calcolo.
-
File di testo (delimitato da tabulazioni): definisce un file registro delimitato da tabulazioni con estensione .tsv.
-
File binario: Questa opzione definisce un file registro sequenziale in formato binario con estensione .blg. Utilizzare questo formato per registrare istanze di dati intermittenti, ovvero che si interrompono e riprendono dopo che è iniziata l'esecuzione del registro.
-
File circolare binario: questa opzione definisce un file registro circolare in formato binario con estensione .blg. Utilizzare questo formato per registrare continuamente i dati nello stesso file registro, sovrascrivendo i record precedenti con i nuovi dati quando vengono raggiunte le dimensioni massime del file.
-
Database SQL: questa opzione consente di definire il nome di un database SQL esistente e un set di registri all'interno del database in cui leggere o scrivere i dati sulle prestazioni. Utilizzare questo formato di file se si desidera raccogliere i dati sulle prestazioni a livello di organizzazione piuttosto che a livello di server.
Vediamo ora nel dettaglio quali sono i contatori e i valori da monitorare per le principali componenti del nostro sistema:
{tab=Memoria}
Monitoraggio della memoria
Se il vostro sistema appare lento, il primo elemento da verificare è certamente la memoria RAM. Un quantitativo insufficiente di RAM può rallentare in modo consistente le operazioni, le applicazioni e i servizi in esecuzione nel server, rappresentando quindi un collo di bottiglia (bottleneck) per l’intero sistema.
Il paging eccessivo è il primo indicatore di un quantitativo insufficiente di RAM. Il paging è il processo mediante il quale blocchi di codice vengono spostati dalla memoria fisica RAM alla memoria virtuale su hard disk, rappresentata da un file detto di paging, o file di swap.
La memoria virtuale è sempre in uso anche quando la memoria fisica richiesta da tutti i processi non supera il valore di RAM installata nel sistema; tuttavia quando questa richiesta si avvicina al valore limite della RAM disponibile, il sistema operativo sposterà con maggiore frequenza blocchi di dati dalla RAM al file di paging, liberando memoria fisica per altri utilizzi, ma facendo uso eccessivo di operazioni di lettura/scrittura su disco, a discapito di tutte le altre operazioni in esecuzione sul sistema.
I principali contatori da utilizzare per determinare se la memoria è un collo di bottiglia sono i seguenti:
-
Pagine/sec: visualizza la frequenza con la quale le pagine vengono lette dal disco o scritte sul disco per risolvere gli errori di pagina gravi. Gli errori di pagina si hanno quando il sistema cerca in RAM pagine non più disponibili, perché spostate nel file di paging. Il suo valore medio, misurato su un periodo campione, dovrebbe essere inferiore a 5.
-
Byte disponibili (Available bytes): indica la quantità totale di memoria fisica disponibile. Il contatore presenta normalmente bassi valori, poiché Windows Disk Cache Manager usa memoria extra per la cache di sistema (memoria fisica corrente utilizzata per memorizzare le pagine dei file aperti) e restituisce memoria quando i processi ne fanno richiesta. Tuttavia bassi valori di Byte disponibili, pari o inferiori al 5% della memoria fisica totale, possono indicare un'insufficienza generale di memoria oppure il mancato rilascio di memoria da parte di un programma.
-
Byte vincolati (Commited bytes): indica il totale di memoria virtuale allocata dai processi. Se questo valore è superiore alla ram fisica è necessario aggiungere memoria. Un elevato valore di questo contatore rispetto alla ram installata causa l'eccessivo utilizzo del file di paging, con rallentamento dell’intero sistema.
-
Byte del pool non di paging (Pool Nonpaged Bytes): indica il numero di pagine che non possono essere spostate nella memoria virtuale e che quindi devono rimanere nello spazio della memoria fisica. Se questo valore subisce un incremento senza un corrispondente aumento delle attività nel server, l’incremento stesso potrebbe essere dovuto ad un processo con memory leak ("falla nella memoria"), ossia un consumo non voluto di RAM a causa della mancata deallocazione dalla memoria di variabili/dati non più utilizzati da parte del processo. Pertanto questo valore dovrebbe mantenersi costante, senza incrementi.
Riepilogando in tabella, ecco le azioni risolutive:
Contatore |
Valore accettabile |
Valore desiderato |
Azioni risolutive |
||
Pagine/sec |
Inferiore a 5 |
Basso |
Individuare i processi che causano un paging eccessivo; aggiungere RAM |
||
Byte disponibili |
Non inferiore al 5% della memoria fisica totale |
Alto |
Individuare i processi che causano un paging eccessivo; aggiungere RAM |
||
Byte vincolati |
Inferiore alla memoria fisica totale |
Basso |
Individuare i processi che causano un paging eccessivo; aggiungere RAM |
||
Byte del pool non di paging |
Deve risultare stabile, senza incrementi |
Stabile |
Individuare i processi che causano un “memory leak” |
||
Poiché un'elevata attività di paging comporta un utilizzo considerevole del disco, i problemi di memoria insufficiente che provocano il paging possono essere confusi con i colli di bottiglia del disco. Pertanto, se il paging non sembra imputabile all’'insufficienza di memoria, verificare, oltre ai contatori della memoria, i contatori relativi all'utilizzo del disco, quali:
- Disco logico\% Tempo disco
- Disco fisico\ Lunghezza media coda del disco
Se si riscontra una bassa frequenza di operazioni di lettura delle pagine tramite il monitor Memoria\Pagine/sec. ma contemporaneamente alti valori di %Tempo disco e Lunghezza media coda del disco, i rallentamenti del sistema potrebbero essere causati da un collo di bottiglia del disco. Se, invece, all'aumento della lunghezza della coda corrisponde un aumento di lettura delle pagine su disco, il problema dipende da un'insufficienza di memoria.
{tab=Dischi}
Monitoraggio dei dischi
I principali contatori da monitorare per la verifica delle attività del disco sono:
-
Disco fisico: % Tempo disco (% Disk Time): indica la percentuale di tempo dedicata dal disco ad attività di lettura/scrittura. Il valore medio non dovrebbe mai essere superiore al 90%
-
Disco fisico: Lunghezza media coda del disco (Current Disk Queue Lenght): numero di richieste del sistema in attesa di accesso al disco. Il valore non dovrebbe mai superare il valore dato dal numero di cilindri più 2 (la maggior parte dei dischi utilizza un unico cilindro): ad esempio, per un singolo hard disk il valore non dovrebbe superare il 3. Al contrario, i dispositivi RAID utilizzano più cilindri, dati dal numero di hard disk che compongono il RAID. Un dispositivo RAID hardware viene visualizzato come un disco fisico in Monitor di sistema.
-
Media Byte/Trasf. Disco (Avg. Disk Bytes/Transfer): indica il valore medio di byte trasferiti nel disco durante le operazioni di lettura e scrittura. Più efficiente sarà la sezione dischi del nostro sistema, maggiore sarà il valore visualizzato.
-
Byte da/a disco /sec. (Disk Bytes/sec.): indica i byte trasferiti nel disco durante le operazioni di lettura e scrittura. Più efficiente sarà la sezione dischi del nostro sistema, maggiore sarà il valore visualizzato.
-
Disco logico: % spazio disponibile (LogicalDisk\% Free Space): quantità di spazio disponibile su un disco logico (unità C, D, etc..)
Riepilogando in tabella, ecco le azioni risolutive:
Contatore |
Valore accettabile |
Valore desiderato |
Azioni risolutive |
||
% Tempo disco |
Inferiore al 90% |
Basso |
Se c'è del paging, verificare i monitor della memoria fisica per chiarire la causa del paging Utilizzare unità disco più veloci Utilizzo di un sistema RAID |
||
Lunghezza media coda del disco |
Non superiore al numero dischi + 2 |
Basso |
Deframmentare il disco |
||
Media Byte/Trasf. Disco |
Come rilevato in situazioni standard, o più elevato |
Alto |
Deframmentare il disco |
||
Byte da/a disco /sec. |
Come rilevato in situazioni standard, o più elevato |
Alto |
Deframmentare il disco Utilizzare unità disco più veloci Utilizzo di un sistema RAID |
||
E' importante ricordare che l'assenza di un quantitativo adeguato di memoria fisisca RAM porta ad un'elevata attività di paging, con un utilizzo considerevole del disco. Pertanto i problemi di memoria insufficiente che provocano il paging possono essere confusi con una lentezza del disco. Se il paging non sembra imputabile ai dischi, verificare il contatore Pagine/sec relativo all'utilizzo della memoria, il cui valore non dovrebbe essere superiore a 5.
{tab=Processore}
Monitoraggio del processore
Il monitoraggio del processore può essere eseguito sia con gli strumenti della console Prestazioni (Performance), sia con il Task Manager. Su Task Manager, il primo parametro da verificare è la percentuale di tempo in cui il processore è impegnato nelle operazioni di calcolo, visualizzabile alla voce “Utilizzo CPU” (CPU Usage). Sulla console Prestazioni, i contatori da utilizzare per determinare se il processore è un collo di bottiglia per il sistema sono i seguenti:
-
% Tempo processore (% Processor time): indica la percentuale di tempo che il processore impiega per eseguire processi non-idle. Ogni processore infatti impiega parte del suo tempo ad eseguire processi idle (inattivi), che consumano cicli quando non vi sono altri processi in esecuzione; il valore viene calcolato sottraendo il tempo dei processi idle dal 100%; ciò che rimane è la percentuale di tempo che il processore impiega per normali processi, percentuale che dovrebbe mantenere un valore medio inferiore all’85%.
-
Sistema: lunghezza coda processore (Processore Queue Lenght): indica il numero di richieste in coda per il processore. In pratica rappresenta il numero di processi pronti per l’esecuzione, ma in attesa che il processore si liberi. Generalmente, è considerato accettabile un valore medio di coda non superiore a 2.
-
Code di lavoro del server: lunghezza coda (Server Work Queues, queue lenght): indica la lunghezza corrente della coda di lavoro del server relativa al processore selezionato. Questo valore dovrebbe mantenersi sotto il 4: una lunghezza di coda costantemente sopra il valore 4 indica una congestione del processore.
-
Interrupt/sec: numero di interrupt di processo ricevuti dal processore. Gli interrupt, o interruzioni, sono generati da componenti hardware quali i controller degli hard disk e le interfacce di rete. Un valore continuo oltre il 1000 generalmente è sintomo di problemi; come regola generale, un significativo aumento di questo valore, senza un corrispondente aumento delle attività nel server, indica problemi di tipo hardware.
Riepilogando in tabella, ecco le azioni risolutive:
Contatore |
Valore accettabile |
Valore desiderato |
Azioni risolutive |
||
% Tempo processore |
Inferiore all'85% |
Basso |
Individuare il processo che utilizza un eccessivo tempo processore. Installare un processore più veloce o aggiungerne un altro. |
||
Sistema: lunghezza coda processore |
Inferiori a 2 |
Basso |
Installare un processore più veloce o aggiungerne un altro. |
||
Code di lavoro del server: lunghezza coda |
Inferiore a 4 |
Basso |
Individuare il processo che utilizza un eccessivo tempo processore. Installare un processore più veloce o aggiungerne un altro. |
||
Interrupt/sec |
Inferiore a 1000 |
Basso |
Verificare il controller che genera gli interrupt |
||
{tab=Rete}
Monitoraggio della rete
Il monitoraggio della rete consiste normalmente nell'osservare l'utilizzo delle risorse del server e nel misurare il traffico complessivo della rete. I principali contatori da monitorare per la verifica delle attività di rete su Windows Server sono:
-
% Utilizzo rete (% Network utilization), disponibile sul Task Manager di Windows: indica la percentuale di banda di rete in uso per l’interfaccia di rete locale. Il suo valore dovrebbe stare al di sotto del 30%.
-
Interfaccia di rete: Byte inviati/sec.: numero di byte inviati tramite l’interfaccia di rete.
-
Interfaccia di rete: Byte totali/sec.: totale dei byte inviati e ricevuti tramite l’interfaccia di rete. Il valore dovrebbe essere elevato, in tal caso si è in presenza di un alto numero di trasmissioni con successo.
-
Server: Byte ricevuti/sec.: è un valore da confrontare con la larghezza di banda totale a disposizione per l’interfaccia di rete. Il valore dovrebbe essere inferiore al 50% della capacità.
Riepilogando in tabella, ecco le azioni risolutive:
Contatore |
Valore accettabile |
Valore desiderato |
Azioni risolutive |
||
% Utilizzo rete (su Task Manager) |
Inferiore all'30% |
Basso |
Upgrade dell'interfaccia di rete o degli apparati di rete |
||
Interfaccia di rete: Byte inviati/sec. |
Come rilevato in situazioni standard, o più elevato |
Alto |
Upgrade dell'interfaccia di rete o degli apparati di rete |
||
Interfaccia di rete: Byte totali/sec. |
Come rilevato in situazioni standard, o più elevato |
Alto |
Upgrade dell'interfaccia di rete o degli apparati di rete |
||
Server: Byte ricevuti/sec. |
Inferiore al 50% della capacità di banda totale |
Basso |
Upgrade dell'interfaccia di rete o degli apparati di rete |
||
Valori anomali dei contatori di rete spesso indicano la presenza di problemi nella memoria, nel processore o nei dischi di un server. E’ quindi consigliabile osservare i contatori di rete insieme ai contatori Processore\% Tempo processore, Disco fisico\% Tempo disco e Memoria\Pagine/sec.
Se, ad esempio, a un consistente incremento di Pagine/sec corrisponde una riduzione del contatore Byte totali/sec gestito da un server, è probabile che il computer non disponga di memoria fisica sufficiente per le operazioni di rete.
{/tabs}
Avvisi
Quando i valori di determinati contatori diventano superiori o inferiori rispetto a un limite specificato, è possibile impostare la scrittura di un messaggio nel log eventi, l'esecuzione di un'applicazione o l'invio di un messaggio in rete, il tutto tramite lo strumento Avvisi, presente in Avvisi e registri di prestazioni all'interno della già citata console Prestazioni di Windows.
Oltre che dall'interno del server stesso, gli avvisi possono essere gestiti dalla postazione client dell'amministratore, aprendo la console Prestazioni, andando su Avvisi, e selezionando Impostazioni nuovo avviso. Nella scheda Generale delle Proprietà della scheda di segnalazione, si dovrebbe fare clic su Aggiungi. Si possono impostare contemporaneamente avvisi di monitor che riguardano più server in rete. Se ad esempio vogliamo ricevere un avviso che ci informa sullo spazio libero nell'unità disco di un server, nella finestra di dialogo Aggiungi contatori è necessario selezionare o digitare il nome di un server, selezionare l'oggetto Disco Logico, selezionare il contatore % Spazio disponibile, selezionare il volume appropriato e fare clic su Aggiungi.
In questo modo, si può aggiungere un contatore per ogni volume desiderato su ogni file server. Dopo aver cliccato su chiudi, nella scheda Generale è necessario selezionare il contatore per il quale impostare la soglia di avvertimento, impostando ad esempio Minore di 10 per ricevere un avviso quando lo spazion libero nell'unità è inferiore al 10%.