Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

NOTE: CentOS Enterprise Linux is built from the Red Hat Enterprise Linux source code. Other than logo and name changes CentOS Enterprise Linux is compatible with the equivalent Red Hat version. This document applies equally to both Red Hat and CentOS Enterprise Linux.
Linuxtopia - CentOS Enterprise Introduzione al System Administration - Informazioni specifiche su Red Hat Enterprise Linux

3.3. Informazioni specifiche su Red Hat Enterprise Linux

Il controllo della larghezza di banda e l'impiego della CPU sotto Red Hat Enterprise Linux, comporta l'uso dei tool affrontati nel Capitolo 2; quindi, se non avete ancora letto il capitolo in questione, fatelo prima di continuare.

3.3.1. Controllo della larghezza di banda su Red Hat Enterprise Linux

Come accennato nella Sezione 2.4.2, � difficile controllare direttamente l'utilizzo della larghezza di banda. Tuttavia, esaminando le statistiche inerenti il livello del dispossitivo, � possibile in modo approsssimato sapere se l'insufficienza della larghezza di banda rappresenti un problema per il vostro sistema.

Con vmstat � possibile determinare se l'attivit� generale del dispositivo � eccessiva, controllando i campi bi e bo, in aggiunta, prendendo nota dei campi si e so, � possibile ottenere maggiori informazioni sull'attivit� del disco causata dallo swap I/O:

   procs                      memory    swap          io     system         cpu
 r  b  w   swpd   free   buff  cache  si  so    bi    bo   in    cs  us  sy  id
 1  0  0      0 248088 158636 480804   0   0     2     6  120   120  10   3  87
        

In questo esempio, il campo bi mostra due blocchi/secondo scritti sui dispositivi a blocco (principalmente sulle unit� disco), mentre il campo bo mostra sei blocchi/secondo letti dai dispositivi a blocco. Possiamo determinare che nessuna di queste attivit� � stata causata dal processo di swap, in quanto i campi si e so mostrano entrambi una velocit� relativa allo swap I/O pari a 0 kilobytes/secondo.

Utilizzando iostat, � possibile ottenere maggiori informazioni sull'attivit� relativa al disco:

Linux 2.4.21-1.1931.2.349.2.2.entsmp (raptor.example.com)     07/21/2003

avg-cpu:  %user   %nice    %sys   %idle
           5.34    4.60    2.83   87.24

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
dev8-0            1.10         6.21        25.08     961342    3881610
dev8-1            0.00         0.00         0.00         16          0
        

Questo output mostra che il dispositivo con il numero 8 (in questo caso /dev/sda, il primo disco SCSI) ha una media leggermente maggiore ad una operazione I/O al secondo (il campo tsp). La maggior parte dell'attivit� I/O per questo dispositivo � stata scritta (il campo Blk_wrtn) con una velocit� di poco superiore a 25 blocchi al secondo (il campo Blk_wrtn/s).

Se avete bisogno di maggiori informazioni, utilizzate l'opzione -x di iostat:

Linux 2.4.21-1.1931.2.349.2.2.entsmp (raptor.example.com)     07/21/2003

avg-cpu:  %user   %nice    %sys   %idle
           5.37    4.54    2.81   87.27

Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz
/dev/sda    13.57   2.86  0.36  0.77   32.20   29.05    16.10    14.53    54.52
/dev/sda1    0.17   0.00  0.00  0.00    0.34    0.00     0.17     0.00   133.40
/dev/sda2    0.00   0.00  0.00  0.00    0.00    0.00     0.00     0.00    11.56
/dev/sda3    0.31   2.11  0.29  0.62    4.74   21.80     2.37    10.90    29.42
/dev/sda4    0.09   0.75  0.04  0.15    1.06    7.24     0.53     3.62    43.01
        

La prima cosa da ricordare � che l'output iostat mostra ora delle statistiche suddivise in livelli. Utilizzando df per associare i mount point ai nomi del dispositivo, � possibile usare questo rapporto per determinare se, per esempio, la partizione che contiene /home/ presenta un carico di lavoro eccessivo.

Ogni output proveniente da iostat -x � lungo e contiene pi� informazioni rispetto a questo; ecco il remainder di ogni riga (con l'aggiunta di una colonna per facilitarne la lettura):

Device:    avgqu-sz   await  svctm  %util
/dev/sda       0.24   20.86   3.80   0.43
/dev/sda1      0.00  141.18 122.73   0.03
/dev/sda2      0.00    6.00   6.00   0.00
/dev/sda3      0.12   12.84   2.68   0.24
/dev/sda4      0.11   57.47   8.94   0.17
        

In questo esempio, � interessante notare che /dev/sda2 � la partizione di swap del sistema; � evidente dai molteplici campi che presentano 0.00 per questa partizione, che lo swapping non rappresenta un problema su questo sistema.

Un altro punto molto interessante da notare � /dev/sda1. Le statistiche per questa partizione sono molto inusuali; l'attivit� generale sembrerebbe bassa, ma per quale motivo la misura media della richiesta I/O (il campo avgrq-sz), il tempo medio d'attesa (il campo await), ed il tempo medio di servizio (il campo svctm) sono pi� grandi delle altre partizioni? La risposta � che questa partizione contiene la directory /boot/, la quale rappresenta il luogo dove viene conservata la ramdisk iniziale ed il kernel. Quando il sistema esegue l'avvio, gli I/O di lettura (da notare che solo i campi rsec/s e rkB/s non presentano il valore zero; qui non viene eseguita alcuna procedura di scrittura) usati durante il processo d'avvio sono per un alto numero di blocchi, risultando cos� in un'attesa relativamente lunga ed in visualizzazioni iostat dei tempi di servizio.

� possibile utilizzare sar per una panoramica pi� duratura delle statistiche I/O; per esempio, sar -b visualizza un rapporto generale di I/O:

Linux 2.4.21-1.1931.2.349.2.2.entsmp (raptor.example.com)     07/21/2003

12:00:00 AM       tps      rtps      wtps   bread/s   bwrtn/s
12:10:00 AM      0.51      0.01      0.50      0.25     14.32
12:20:01 AM      0.48      0.00      0.48      0.00     13.32
…
06:00:02 PM      1.24      0.00      1.24      0.01     36.23
Average:         1.11      0.31      0.80     68.14     34.79
        

Le statistiche, come il display iniziale di iostat, sono raggruppate per tutti i dispositivi a blocco.

Un altro rapporto relativo a I/O viene riprodotto utilizzando sar -d:

Linux 2.4.21-1.1931.2.349.2.2.entsmp (raptor.example.com)     07/21/2003

12:00:00 AM       DEV       tps    sect/s
12:10:00 AM    dev8-0      0.51     14.57
12:10:00 AM    dev8-1      0.00      0.00
12:20:01 AM    dev8-0      0.48     13.32
12:20:01 AM    dev8-1      0.00      0.00
…
06:00:02 PM    dev8-0      1.24     36.25
06:00:02 PM    dev8-1      0.00      0.00
Average:       dev8-0      1.11    102.93
Average:       dev8-1      0.00      0.00
        

Questo rapporto fornisce informazioni per ogni dispositivo, ma con pochi dettagli.

Anche se non vi sono delle statistiche precise in grado di mostrare l'utilizzo della larghezza di banda o del datapath, noi possiamo determinare almeno il comportamento del dispositivo e usare la loro attivit� per determinare indirettamente il carico del bus.

3.3.2. Controllo dell'utilizzo della CPU su Red Hat Enterprise Linux

A differenza della larghezza di banda, il controllo dell'utilizzo della CPU � molto pi� semplice. Da una percentuale singola di utilizzo della CPU in GNOME System Monitor, alle statistiche pi� dettagliate riportate da sar, � possibile determinare in modo pi� accurato la quantit� di potenza della CPU consumata e da chi.

Andando oltre GNOME System Monitor, top rappresenta il primo tool di controllo delle risorse nel Capitolo 2 in grado di fornire una rappresentazione pi� dettagliata sull'uso della CPU. Ecco un rapporto top di una workstation dual-processor:

  9:44pm  up 2 days, 2 min,  1 user,  load average: 0.14, 0.12, 0.09
90 processes: 82 sleeping, 1 running, 7 zombie, 0 stopped
CPU0 states:  0.4% user,  1.1% system,  0.0% nice, 97.4% idle
CPU1 states:  0.5% user,  1.3% system,  0.0% nice, 97.1% idle
Mem:  1288720K av, 1056260K used,  232460K free,       0K shrd,  145644K buff
Swap:  522104K av,       0K used,  522104K free                  469764K cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
30997 ed        16   0  1100 1100   840 R     1.7  0.0   0:00 top
 1120 root       5 -10  249M 174M 71508 S <   0.9 13.8 254:59 X
 1260 ed        15   0 54408  53M  6864 S     0.7  4.2  12:09 gnome-terminal
  888 root      15   0  2428 2428  1796 S     0.1  0.1   0:06 sendmail
 1264 ed        15   0 16336  15M  9480 S     0.1  1.2   1:58 rhn-applet-gui
    1 root      15   0   476  476   424 S     0.0  0.0   0:05 init
    2 root      0K   0     0    0     0 SW    0.0  0.0   0:00 migration_CPU0
    3 root      0K   0     0    0     0 SW    0.0  0.0   0:00 migration_CPU1
    4 root      15   0     0    0     0 SW    0.0  0.0   0:01 keventd
    5 root      34  19     0    0     0 SWN   0.0  0.0   0:00 ksoftirqd_CPU0
    6 root      34  19     0    0     0 SWN   0.0  0.0   0:00 ksoftirqd_CPU1
    7 root      15   0     0    0     0 SW    0.0  0.0   0:05 kswapd
    8 root      15   0     0    0     0 SW    0.0  0.0   0:00 bdflush
    9 root      15   0     0    0     0 SW    0.0  0.0   0:01 kupdated
   10 root      25   0     0    0     0 SW    0.0  0.0   0:00 mdrecoveryd
          

Le prime informazioni riguardanti la CPU vengono visualizzate sulla prima riga: il carico medio. Il carico medio � un numero che corrisponde al numero medio di processi eseguibili sul sistema. Il carico medio viene spesso elencato attraverso un insieme di tre numeri (come fatto da top), i quali rappresentano il carico medio nei precedenti 1, 5 e 15 minuti, indicando che il sistema in questo esempio, non era molto occupato.

La riga successiva, anche se non strettamente legata all'utilizzo della CPU, ha una relazione indiretta, in quanto mostra il numero di processi eseguibili (qui, solo uno -- ricordate questo numero, in quanto rappresenta qualcosa di speciale in questo esempio). Il numero di processi eseguibili � un buon indicatore di come potrebbe essere il legame tra la CPU ed il sistema.

Successivamente si possono notare due righe che mostrano l'utilizzo corrente dei due CPU nel sistema. Le statistiche inerenti l'utilizzo mostrano il consumo dei cicli CPU, e se lo stesso sia dovuto alla processazione user-level o system-level; viene altres� inclusa una statistica che mostra la quantit� di tempo CPU consumato dai processi che presentano uno scheduling di priorit� modificato. Per finire, vi � anche una statistica riguardante il tempo in posizione idle.

Procedendo nella sezione relativa al processo, possiamo trovare che il processo che utilizza maggiormente la potenza CPU � proprio top; in altre parole, l'unico processo eseguibile era top ed era intento ad eseguire una "foto" di se stesso.

SuggerimentoSuggerimento
 

� importante ricordare che l'atto di esecuzione di un monitor del sistema, influenza le statistiche sull'utilizzo della risorsa che ricevete. Tutti i monitor basati sul software, in alcuni casi, non sono esenti da quanto sopra indicato.

Per ottenere una conoscenza pi� dettagliata sull'utilizzo della CPU, � necessario cambiare i tool. Se esaminiamo l'output di vmstat, possiamo avere una concezione leggermente diversa sul nostro sistema:

   procs                      memory    swap          io     system         cpu
 r  b  w   swpd   free   buff  cache  si  so    bi    bo   in    cs  us  sy  id
 1  0  0      0 233276 146636 469808   0   0     7     7   14    27  10   3  87
 0  0  0      0 233276 146636 469808   0   0     0     0  523   138   3   0  96
 0  0  0      0 233276 146636 469808   0   0     0     0  557   385   2   1  97
 0  0  0      0 233276 146636 469808   0   0     0     0  544   343   2   0  97
 0  0  0      0 233276 146636 469808   0   0     0     0  517    89   2   0  98
 0  0  0      0 233276 146636 469808   0   0     0    32  518   102   2   0  98
 0  0  0      0 233276 146636 469808   0   0     0     0  516    91   2   1  98
 0  0  0      0 233276 146636 469808   0   0     0     0  516    72   2   0  98
 0  0  0      0 233276 146636 469808   0   0     0     0  516    88   2   0  97
 0  0  0      0 233276 146636 469808   0   0     0     0  516    81   2   0  97
        

In questo caso abbiamo usato il comando vmstat 1 10 per controllare il sistema ogni secondo per dieci volte. Le statistiche relative alla CPU (i campi us, sy, e id) sembrano simili a quelle mostrate da top, e addirittura possono apparire anche meno dettagliate. Tuttavia, a differenza di top, possiamo anche ottenere alcune informazioni su come � stata usata la CPU.

Se esaminiamo i campi system possiamo notare che la CPU in media, gestisce 500 interruzioni al secondo e si smista tra i processi da 80 a 400 volte al secondo. Se vi pare che essa sia un'attivit� intensa, ricredetevi, in quanto la processazione user-level (il campo us) si comporta solo al 2%, mentre la processazione system-level (il campo sy) � generalmente sotto l'1%. Ancora, questo rappresenta un sistema idle.

Ricontrollando ci� che offrono i tool Sysstat, possiamo dire che iostat e mpstat forniscono poche informazioni aggiuntive a confronto di ci� che � stato ottenuto con top e vmstat. Tuttavia, sar produce un numero di rapporti che possono essere utili durante il controllo della CPU.

Il primo rapporto viene ottenuto dal comando sar -q, il quale visualizza la lunghezza della coda di esecuzione, il numero totale dei processi, ed il carico medio inerenti ad uno e cinque minuti. Ecco un esempio:

Linux 2.4.21-1.1931.2.349.2.2.entsmp (falcon.example.com)      07/21/2003

12:00:01 AM   runq-sz  plist-sz   ldavg-1   ldavg-5
12:10:00 AM         3       122      0.07      0.28
12:20:01 AM         5       123      0.00      0.03
…
09:50:00 AM         5       124      0.67      0.65
Average:            4       123      0.26      0.26
        

In questo esempio, il sistema � sempre occupato (se consideriamo che � possibile eseguire pi� di un processo in ogni determinato momento), ma non � sovraccarico (grazie al fatto che questo sistema possiede pi� di un processore).

Il prossimo rapporto sar relativo alla CPU viene fornito dal comando sar -u:

Linux 2.4.21-1.1931.2.349.2.2.entsmp (falcon.example.com)      07/21/2003

12:00:01 AM       CPU     %user     %nice   %system     %idle
12:10:00 AM       all      3.69     20.10      1.06     75.15
12:20:01 AM       all      1.73      0.22      0.80     97.25
…
10:00:00 AM       all     35.17      0.83      1.06     62.93
Average:          all      7.47      4.85      3.87     83.81
        

Le statistiche contenute in questo rapporto non variano rispetto a quelle fornite da molti altri tool. Il beneficio pi� grande � che sar � in grado di rendere i dati continuamente disponibili, e quindi, si mostra pi� utile per ottenere delle medie valide pi� a lungo, oppure potrebbe risultare utile per la produzione di grafici sull'utilizzo della CPU.

Su sistemi con processori multipli, il comando sar -U pu� fornire statistiche per un unico o per tutti i processori. Ecco un esempio di output di sar -U ALL:

Linux 2.4.21-1.1931.2.349.2.2.entsmp (falcon.example.com)      07/21/2003

12:00:01 AM       CPU     %user     %nice   %system     %idle
12:10:00 AM         0      3.46     21.47      1.09     73.98
12:10:00 AM         1      3.91     18.73      1.03     76.33
12:20:01 AM         0      1.63      0.25      0.78     97.34
12:20:01 AM         1      1.82      0.20      0.81     97.17
…
10:00:00 AM         0     39.12      0.75      1.04     59.09
10:00:00 AM         1     31.22      0.92      1.09     66.77
Average:            0      7.61      4.91      3.86     83.61
Average:            1      7.33      4.78      3.88     84.02
        

Il comando sar -w riporta il numero di cambiamenti del contesto al secondo, rendendo possibile ottenere informazioni aggiuntive su dove siano stati usati i cilci CPU:

Linux 2.4.21-1.1931.2.349.2.2.entsmp (falcon.example.com)      07/21/2003

12:00:01 AM   cswch/s
12:10:00 AM    537.97
12:20:01 AM    339.43
…
10:10:00 AM    319.42
Average:      1158.25
        

� anche possibile fornire due diversi rapporti sar sull'attivit� d'interruzione. Il primo, (riprodotto usando il comando sar -I SUM) visualizza una singola statistica inerente "le interruzioni al secondo":

Linux 2.4.21-1.1931.2.349.2.2.entsmp (falcon.example.com)      07/21/2003

12:00:01 AM      INTR    intr/s
12:10:00 AM       sum    539.15
12:20:01 AM       sum    539.49
…
10:40:01 AM       sum    539.10
Average:          sum    541.00
        

Utilizzando il comando sar -I PROC, � possibile suddividere l'attivit� d'interruzione a seconda del processore (su sistemi con processori multipli) e tramite il livello d'interruzione (da 0 a 15):

Linux 2.4.21-1.1931.2.349.2.2.entsmp (pigdog.example.com)     07/21/2003

12:00:00 AM  CPU  i000/s  i001/s  i002/s  i008/s  i009/s  i011/s  i012/s
12:10:01 AM    0  512.01    0.00    0.00    0.00    3.44    0.00    0.00

12:10:01 AM  CPU  i000/s  i001/s  i002/s  i008/s  i009/s  i011/s  i012/s
12:20:01 AM    0  512.00    0.00    0.00    0.00    3.73    0.00    0.00
…
10:30:01 AM  CPU  i000/s  i001/s  i002/s  i003/s  i008/s  i009/s  i010/s
10:40:02 AM    0  512.00    1.67    0.00    0.00    0.00   15.08    0.00
Average:       0  512.00    0.42    0.00     N/A    0.00    6.03     N/A
        

Questo rapporto (il quale � stato troncato in modo da rientrare in una unica pagina), include una colonna per ogni livello d'interruzione (per esempio, il campo i002/s riporta la velocit� per il livello d'interruzione 2). Se si fosse trattato di un sistema a processore multiplo, dovrebbe essere riportata una riga per periodo per ogni CPU.

Un altro punto molto importatnte da ricordare su questo rapporto, � che sar � in grado di aggiungere o rimuovere dei campi d'interruzione, se nessun dato viene raccolto per un campo specifico. Il rapporto sopra riportato fornisce un esempio di quanto detto, la fine dello stesso include i livelli d'interruzione (3 e 10), non presenti all'inizio del periodo.

NotaNota Bene
 

Vi sono altri due rapporti sar relativi all'interruzione — sar -I ALL e sar -I XALL. Tuttavia, la configurazione di default per la utility per la raccolta dei dati sadc, non raccoglie le informazioni necessarie per questi rapporti. Tutto questo pu� essere cambiato modificando il file /etc/cron.d/sysstat, e modificando questa riga:

*/10 * * * * root /usr/lib/sa/sa1 1 1
          

in questo modo:

*/10 * * * * root /usr/lib/sa/sa1 -I 1 1
          

Ricordatevi che questa modifica causa una raccolta aggiuntiva di informazioni da parte di sadc, risultando in misure pi� grandi del data file. Per questo motivo, assicuratevi che la configurazione del vostro sistema sia in grado di supportare un consumo aggiuntivo dello spazio.

 
 
  Published under the terms of the GNU General Public License Design by Interspire