Come affrontato precedentemente, le risorse presenti in un sistema sono la potenza della CPU, la larghezza della banda, la memoria, e lo storage. A prima vista sembrerebbe che il controllo consista solo nel monitorare questi quattro elementi.
Sfortunatamente, non � cos� semplice. Per esempio, considerate una unit� disco. Cosa desiderate sapere sulle sue prestazioni?
Quanto spazio � disponibile?
Quante operazioni I/O in generale, esegue ogni secondo?
Quanto tempo � necessario per completare una operazione I/O?
Quante operazioni I/O vengono lette? E quante ne vengono scritte?
A quanto ammontano i dati letti/scritti con ogni operazione I/O?
Vi sono svariati modi per studiare le prestazioni dell'unit� disco; questi sono solo alcune delle domende pi� comuni. Il concetto fondamentale da ricordare � che vi sono diversi dati per ogni risorsa.
Le seguenti sezioni riportano le diverse informazioni inerenti il loro impiego, utili per le risorse pi� importanti.
2.4.1. Controllo della potenza della CPU
Nella sua forma base, il controllo della potenza della CPU risulta semplice tanto quanto il determinare se l'utilizzo della CPU raggiunge il 100%. Se tale utilizzo rimane al di sotto del 100%, non ha importanza cosa stia facendo il sistema, la potenza di processazione aggiuntiva risulta essere sempre disponibile.
Tuttavia, � molto raro che il sistema non riesca a raggiungere il 100% dell'utilizzo della CPU. A questo punto risulta essere utile esaminare i dati pi� importanti inerenti l'utilizzo della CPU stessa. Cos� facendo, diventa possibile determinare dove viene consumata la maggior parte della potenza di processazione. Ecco alcune delle statistiche pi� comuni sull'utilizzo della CPU:
Utente contro sistema
La percentuale di tempo impiegato per eseguire una processazione del tipo user-level contro una processazione del tipo system-level, esso � in grado di indicare che il caricamento di un sistema � dovuto soprattutto all'esecuzione delle applicazioni o all'overhead del sistema operativo. Alte percentuali user-level tendono ad essere molto positive (assumendo che gli utenti abbiano delle prestazioni soddisfacenti), mentre alte percentuali di system-level, tendono ad evidenziare problemi che necessitano un maggiore controllo.
Cambio di contesto
Un cambio di contesto si pu� verificare quando la CPU termina l'esecuzione di un processo e inizia l'esecuzione di un altro. A causa della necessit� del sistema operativo di assumere il controllo della CPU quando si verifica un cambio di contesto, generalmente si possono verificare contemporaneamente sia diverse variazioni di contesto, che un livello molto alto del consumo della CPU da parte del system-level.
Interruzioni
Come implica il nome, le interruzioni sono situazioni dove la processazione eseguita dalla CPU viene bruscamente modificata. Le suddette interruzioni si verificano generalmente a causa di attivit� hardware (come ad esempio le interruzioni software che controllano la processazione delle applicazioni). Poich� tali interruzioni vengono affrontate in un system level, una frequenza di interruzione troppo elevata, favorisce un utilizzo maggiore della CPU del system-level.
Processi eseguibili
Un processo pu� essere presente con un diverso stato. Per esempio, si potrebbe verificare:
L'attesa che una operazione I/O venga terminata
Attesa per un sottosistema di gestione della memoria in grado di gestire un page fault
In questi casi, il processo non ha bisogno della CPU.
Tuttavia lo stato del processo potrebbe cambiare, diventando cos� un processo eseguibile. Come indicato dal nome, un processo eseguibile � quel processo che � in grado di terminare il proprio lavoro quando viene programmata la ricezione della CPU time. Se � possibile eseguire pi� di un processo in un determinato momento, tutti eccetto uno[1] dei processi eseguibili, devono attendere il proprio turno nella CPU. Controllando il numero di processi eseguibili, � possibile determinare il livello di legame del vostro sistema alla CPU.
Altre metriche che possono avere un impatto sull'utilizzo della CPU, tendono ad includere diversi servizi che il sistema operativo fornisce ai processi. Essi possono includere le statistiche sulla gestione della memoria, la processazione I/O, e cos� via. Queste statistiche accertano che, duranteil controllo delle prestazioni del sistema, non vi sia alcuna relazione tra di esse. In altre parole, le statistiche sull'utilizzo della CPU possono indicare un problema nel sottosistema I/O, oppure quelle inerenti l'utilizzo della memoria potrebbero rivelare un difetto nel design dell'applicazione.
Per questo motivo quando si controllano le prestazioni del sistema, non � possibile esaminare solo una singola statistca; solo esaminando il quadro generale � possibile ottenere informazioni utili.
2.4.2. Controllo della larghezza della banda
Il controllo della larghezza della banda risulta essere molto pi� difficoltoso di altre risorse finora descritte. Il motivo � dato dal fatto che le statistiche riguardanti le prestazioni, si basano generalmente sul dispositivo mentre molti dei luoghi dove la larghezza della banda � importante, le stesse statistiche risultano essere basate su bus che collegano i dispositivi. In questi esempi, dove pi� di un dispositivo condivide un bus, potreste essere in grado di notare le statistiche inerenti ogni dispositivo, ma in compenso il carico che ne deriva con i dispositivi posizionato sui bus, sar� maggiore.
Un'altra considerazione che bisogna tener presente durante il controllo della larghezza della banda, � la possibilit� che si possano verificare circostanze talidove le statistche per i dispositivi veri e propri, possono non essere disponibili. Questo pu� essere particolarmente vero per i bus di espansione del sistema e per i datapath[2]. Tuttavia, anche tali statistiche non possono essere sempre accurate al 100%, ci saranno sempre informazioni sufficienti per avere un elemento di analisi.
Alcune delle statistiche comuni relative alla larghezza della banda sono:
Byte ricevuti/inviati
Le statistiche sull'interfaccia della rete forniscono una indicazione sull'utilizzo della larghezza della banda di uno dei bus pi� visibili — la rete.
Conteggi dell'interfaccia e velocit�
Le statistiche relative alla rete possono fornire una indicazione di eccessive collisioni, trasmettere e ricevere errori e molto altro. Attraverso l'uso di queste statistiche (in modo particolare se queste statistiche sono disponibili per pi� di un sistema presente sulla rete), � possibile eseguire un minimo di troubleshooting della rete ancor prima di utilizzare i tool di diagnosi.
Trasferimenti al secondo
Raccolti normalmente per i dispositivi I/O a blocco, come ad esempio dischi e tape drive ad elevata prestazione, questa statistica rappresenta un ottimo metodo per determinare se � stato raggiunto il limite di una larghezza di banda di un dispositivo. A causa della loro natura elettromeccanica, il disco ed i tape drive possono solo eseguire un certo numero di operazioni I/O al secondo, la loro prestazione peggiora rapidamente man mano che si raggiunge questo limite.
2.4.3. Controllo della memoria
Se vi � una zona dove � possibile trovare delle statistiche riguardanti la prestazione, la suddetta � rappresentata dall'area di controllo sull'utilizzo della memoria. A causa della complessit� dei sistemi operativi con memoria virtuale 'demand-paged', le statistiche inerenti l'utilizzo della memoria sono molteplici e varie. � qui che si verifica la maggior parte del lavoro degli amministratori di sistema per la gestione delle risorse.
Le seguenti statistiche rappresentano una panoramica di statistiche comuni per la gestione della memoria:
Page In/Page Out
Queste statistiche rendono possibile valutare il flusso di pagine dalla memoria del sistema ad un dispositivo mass storage collegato (generalmente una unit� disco). Un numero elevato per entrambe queste statistiche potrebbe significare che il sistema ha una carenza di memoria fisica, e st� eseguendo un thrashing, oppure che utilizza pi� risorse per muovere le pagine in entrata e in uscita dalla memoria, che nell'eseguire le applicazioni.
Pagine attive/inattive
Queste statistiche mostrano come vengono usate le pagine che risiedono nella memoria. Una carenza di pagine inattive pu� indicare una carenza di memoria fisica.
Pagine disponibili, condivise, 'buffered' e 'cached'
Queste statistiche sono in grado di fornire meggiori informazioni rispetto a quelle riguardanti la pagina inattiva/attiva. Usando le suddette statistiche, � possibile determinare le informazioni generali sull'utilizzo della memoria.
Swap In/Swap Out
Queste statistiche mostrano il comportamento di swapping generale del sistema. Una velocit� molto elevata pu� indicare una carenza di memoria fisica.
Un controllo efficace sull'utilizzo della memoria richiede una buona conoscenza del funzionamento di sistemi operativi con memoria virtuale 'demand-paged'. Anche se con il suddetto argomento da solo si potrebbe scrivere un libro intero, i concetti di base vengono affrontati nel Capitolo 4. Questo capitolo insieme con il tempo necessario a controllare un sistema, vi d� la possibilit� di ottenere maggiori informazioni su questo argomento.
2.4.4. Controllo dello storage
Il controllo dello storage viene normalmente eseguito tramite due fasi:
Il controllo di spazio sufficiente
Controllo dei problemi sulla prestazione relativi allo storage
� possibile avere problemi in un'area mentre l'altra ne � esente. Per esempio, � possibile avere una unit� disco senza spazio ma non avere alcun problema nelle prestazioni. Al contrario � possibile avere 99% di spazio disponibile, ma avere problemi nella prestazione.
Tuttavia, � molto probabile che un sistema normale possa avere problemi sia nell'una che nell'altra area. Per questo motivo, � possibile anche che — in alcuni casi — i problemi che si verificano in un'area possano influenzare anche l'altra. In molti casi i suddetti problemi si presentano sotto forma di prestazioni I/O molto povere, con uno spazio disponibile sull'unit� disco vicino allo 0%, anche se in casi di carico I/O estremo, � possibile rallentare I/O fino ad un certo livello dove le applicazioni non possono pi� essere eseguite correttamente.
In qualunque caso, le seguenti statistiche sono molto utili per il controllo dello storage:
Spazio disponibile
Lo spazio disponibile rappresenta la risorsa pi� seguita da parte degli amministratori di sistema, � molto raro incontrare un amministratore che non controlla tale risorsa (in alcuni casi tali amministratori hanno un modo auomatizzato per eseguire questo controllo).
Statistiche relative al File System
Queste statistiche (come ad esempio il numero dei file/directory, misura media dei file, ecc.), forniscono informazioni aggiuntive su di una singola percentuale di spazio disponibile. I suddetti dati rendono possibile da parte dell'amministratore, una configurazione del sistema in modo da ottenere la migliore prestazione, in quanto il carico I/O imposto da un file system pieno di piccoli file, non � lo stesso di quello imposto da un file system riempito da un singolo grande file.
Trasferimenti al secondo
Questa statistca � il modo idoneo per determinare se i limiti della larghezza di banda di un dispositivo particolare sono stati raggiunti.
Scrittura/lettura al secondo
Leggermente pi� dettagliate dei trasferimenti al secondo, queste statistiche permettono all'amministratore di sistema di capire maggiormente la natura dei carichi I/O presenti nel dispositivo storage. Questo pu� essere critico, in quanto alcune tecnologie storage possiedono diverse caratteristiche in prestazione per operazioni di lettura rispetto a quelle di scrittura.