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
Answertopia.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 Linux Einfuhrung in die System-Administration - Red Hat Enterprise Linux-spezifische Information

3.3. Red Hat Enterprise Linux-spezifische Information

Zur �berwachung von Bandbreite und CPU-Auslastung unter Red Hat Enterprise Linux werden die in Kapitel 2 beschriebenen Tools benutzt. Sollten Sie dieses Chapter noch nicht gelesen haben, so raten wir Ihnen dringend an, dies noch bevor Sie fortfahren nachzuholen.

3.3.1. �berwachung von Bandbreite auf Red Hat Enterprise Linux

Wie in Abschnitt 2.4.2 erkl�rt, ist es schwierig Bandbreiten-Nutzung direkt zu �berwachen. Durch die Pr�fung von Device-Level-Statistiken ist es jedoch m�glich grob abzusch�tzen, ob ungen�gende Bandbreite ein Problem auf Ihrem System darstellt.

Mit dem Befehl vmstat ist es m�glich festzustellen, ob die allgemeine Ger�te-Aktivit�t �berh�ht ist, indem Sie die Felder bi und bo dahingehend �berpr�fen. Die zus�tzliche und genauere Betrachtung der Feldersi und so gibt Ihnen mehr Einblick in Hinsicht auf Plattenaktivit�t, die durch Swap-bezogenen I/O entsteht:

   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 diesem Beispiel zeigt das bi-Feld an, dass zwei Bl�cke pro Sekunde zu Block-Devicen geschrieben werden (haupts�chlich zu Laufwerken), w�hrend das bo-Feld sechs Bl�cke pro Sekunde anzeigt, die von Block-Devicen gelesen wurden. Daraus k�nnen wir ersehen, dass keine dieser Aktivit�ten auf Swapping zur�ckzuf�hren ist, da die si und so-Felder beide eine Swap-bezogene I/O-Rate von null Kilobytes/Sekunde anzeigen.

Durch die Benutzung von iostat ist es m�glich, ein wenig mehr Einblick in Platten-bezogene Aktivit�t zu erhalten:

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
        

Dieser Output zeigt uns, dass der Durchschnitt f�r das Ger�t mit Hauptnummer 8 (welches /dev/sda, die erste SCSI-Festplatte ist) nur geringf�gig mehr als ein I/O Arbeitsgang pro Sekunde ist (das tsp-Feld). Der Grossteil der I/O-Aktivit�t f�r dieses Ger�t ist auf Schreibvorg�nge (das Blk_wrtn-Feld) mit geringf�gig mehr als 25 Bl�cken pro Sekunde zur�ckzuf�hren (das Blk_wrtn/s-Feld).

F�r mehr Details benutzen Sie die iostats -x-Option:

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
        

Nebst den l�ngeren Zeilen, welche auch mehr Felder beinhalten, ist das Erste, das Sie im Auge behalten sollten, dass diese iostat-Ausgabe nunmehr Statistiken auf einer Pro-Partitions-Ebene aufzeigt. Wenn Sie df benutzen, um Mount-Punkte mit Ger�tenamen zu verkn�pfen, so ist es m�glich diesen Report zu benutzen um festzustellen, ob zum Beispiel die Partition, welche /home/ beinhaltet, einer �berh�hten Arbeitsbelastung ausgesetzt ist.

Tats�chlich ist jede einzelne Zeilenausgabe von iostat -x l�nger und beinhaltet mehr Information als diese hier. Hier finden Sie den Rest jeder Zeile (mit der beigef�gten Ger�te-Spalte zum einfacheren Lesen):

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 diesem Beispiel ist /dev/sda2 interessanterweise die System Swap-Partition. Es ist offensichtlich, dass Swapping f�r diese Partition kein Problem auf diesem System ist, da viele Felder 0.00 anzeigen.

Ein weiterer interessanter Punkt ist /dev/sda1. Die Statistiken f�r diese Partition sind eher ungew�hnlich. Die allgemeine Aktivit�t scheint niedrig zu sein, wobei jedoch die durchschnittliche I/O-Anfragegr��e (das avgrq-sz-Feld), die durchschnittliche Wartezeit (das await-Feld) und die durchschnittliche Servicezeit (das svctm-Feld) um einiges h�her sind, als bei anderen Partitionen. Warum ist das so? Die Antwort darauf ist, dass diese Partition das /boot/-Verzeichnis beinhaltet, in dem Kernel und anf�ngliche Ramdisk gespeichert werden. Wenn das System bootet, so sind die Lese-I/Os (beachten Sie, dass nur die rsec/s und rkB/s nicht null sind; regelm��ig finden hier keine Schreibvorg�nge statt), die w�hrend des Boot-Prozesses verwendet werden, f�r eine gro�e Anzahl von Bl�cken verantwortlich, was zu den relativ langen Warte- und Servicezeiten f�hrt, welche in iostat angezeigt werden.

Es ist m�glich den Befehl sar f�r einen Langzeit�berblick �ber I/O-Statistiken zu benutzen. Zum Beispiel kann mit sar -b ein allgemeiner I/O-Report angezeigt werden:

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
        

Hier, wie auch bei iostats urspr�nglicher Anzeige, sind die Statistiken f�r alle Block-Ger�te gruppiert.

Ein anderer I/O-bezogener Report wird mittels dem Befehl sar -d erzeugt:

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
        

Dieser Report beinhaltet eine Pro-Device-Information, jedoch mit wenigen Details.

W�hrend es keine eindeutigen Statistiken zur Bandbreitennutzung f�r einen bestimmten Bus oder Datenpfad gibt, k�nnen wir jedoch zumindest feststellen, was die Devices tun und k�nnen deren Aktivit�ten dazu benutzen, um indirekt die Bus-Beanspruchung festzustellen.

3.3.2. �berwachung der CPU-Nutzung auf Red Hat Enterprise Linux

Im Gegensatz zu Bandbreite ist das �berwachen von CPU-Nutzung ein �berschaubares Thema. Vom prozentualen Anteil der CPU-Nutzung in GNOME System Monitor bis hin zu tiefgreifendeen Statistiken, dargestellt durch den sar-Befehl, ist es m�glich genauestens festzustellen, wieviel CPU-Leistung verbraucht wird und wodurch.

�ber den GNOME System Monitor hinaus, ist top das erste Ressource-�berwachungstool, das in Kapitel 2 behandelt wird und eine tiefgreifendere Darstellulng der CPU-Nutzung liefert. Hier ist ein top-Report von einem Dual-Prozessor-Arbeitsplatzger�t:

  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
          

Die erste CPU-bezogene Information befindet sich in der allerersten Zeile: die Durchschnittsbelastung. Die Durchschnittsbelastung ist eine Zahl, welche der durchschnittlichen Anzahl von ablaufenden Prozessen auf dem System entspricht. Der Belastungsdurchschnitt ist oft in Form von 3 Zahlen (wie bei top) aufgelistet, welche die Durchschnittsbelastung f�r die letzte Minute, die letzten f�nf Minuten und 15 Minuten darstellen und in diesem konkreten Beispiel darauf hinweisen, dass das System nicht sehr ausgelastet war.

Die n�chste Zeile, wenn auch nicht strikt auf CPU-Auslastung bezogen, besitzt einen indirekten Bezug, indem es die Anzahl der ablaufenden Prozesse (hier nur einer -- behalten Sie diese Zahl im Ged�chtnis, da diese etwas Besonderes in diesem Beispiel bedeutet) anzeigt. Die Anzahl der ablaufenden Prozesse ist ein guter Indikator, wie CPU-bound ein System eventuell sein mag.

Als n�chstes zeigen zwei Zeilen die gegenw�rtige Auslastung f�r jede einzelne der beiden CPUs im System an. Die Nutzungsstatistiken sind aufgegliedert, um anzuzeigen, ob die CPU-Zyklen f�r Abl�ufe auf Benutzerebene oder Systemebene benutzt wurden; ebenso beinhaltet ist eine Statistik, die aufzeigt, wieviel CPU-Zeit von Prozessen mit abge�nderter Planungsdringlichkeit aufgebraucht worden ist. Schlussendlich finden Sie eine Idle-Time-Statistik (Zeit im Leerlauf).

Wenn wir uns hinunterbewegen zum Prozess-bezogenen Abschnitt der Anzeige, so sehen wir, dass der Prozess, der die meiste CPU-Leistung verbraucht top selbst ist; in anderen Worten war top der eine ablaufende Prozess auf diesem andererseits nicht produktiven System, der von sich selbst ein "Bild" gemacht hat.

TippTipp
 

Es ist wichtig sich daran zu erinnern, dass in diesem Fall der eigentliche �berwachungsvorgang die von Ihnen erhaltenen Ressource-Nutzungsstatistiken beeinflusst. Dies trifft zu einem bestimmten Ma�e f�r jegliche Art von �berwachungssoftware zu.

Um detaillierteres Wissen �ber CPU-Nutzung zu erlangen, m�ssen wir mit anderen Tools arbeiten. Wenn wir die Ausgabe von vmstat �berpr�fen, so kommen wir zu einem geringf�gig anderen Verst�ndnis unseres Beispiel-Systems:

   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
        

Hier haben wir den Befehl vmstat 1 10 verwendet, um das System zehnmal hintereinander jede Sekunde abzufragen. Zuerst scheinen die CPU-bezogenen Statistiken (die us-, sy- und id-Felder) denjenigen zu gleichen, die von topangezeigt wurden, vielleicht sogar etwas weniger detailliert. Jedoch im Gegensatz zu top k�nnen wir ein wenig Einblick darin gewinnen, wie die CPU genutzt wird.

Wenn wir die system-Felder �berpr�fen, stellen wir fest, dass die CPU im Durchschnitt ungef�hr 500 Interrupts pro Sekunde abwickelt und zwischen Prozessen irgendwo von 80 bis nahezu 400 mal pro Sekunde wechselt. Wenn Sie glauben, dass dies eine hohe Aktivit�t darstellt, dann denken Sie nochmals genau dar�ber nach. Die Abl�ufe auf Benutzerebene (das us-Feld) machen im Durchschnitt nur 2% aus, w�hrend Abl�ufe auf Systemebene (das sy-Feld) normalerweise unter 1% liegen. Nochmals, es handelt sich hier um ein nicht produktives System.

Bei nochmaliger Durchsicht der Sysstat-Tools zeigt sich, dass iostat und mpstat nur wenig zus�tliche Informationen im Vergleich dazu bieten, was wir bereits durch top und vmstat festgestellt haben. sar produziert jedoch eine Anzahl von Reporten, die bei der �berwachung von CPU-Auslastung n�tzlich sein k�nnen.

Mit dem Befehl sar -q erh�lt man den ersten Report, welcher die Run-Queue-L�nge darstellt sowie auch die Gesamtanzahl an Prozessen und die Belastung im Durchschnitt f�r die letzten 1 bis 5 Minuten. Hier ist ein Beispiel:

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 diesem Beispiel ist das System immer besch�ftigt (wenn man bedenkt, dass mehr als ein Prozess zu einem bestimmten Zeitpunkt ablaufen kann), jedoch nicht �berm��ig belastet (aufgrund der Tatsache, dass dieses bestimmte System mehr als einen Prozessor besitzt).

Der n�chste CPU-bezogene sar-Report wird durch den Befehlsar -u erstellt:

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
        

Die Statistiken, welche in diesem Report enthalten sind, unterscheiden sich nicht von denjenigen, die von vielen anderen Tools erstellt werden. Der gr��te Nutzen hierbei ist, dass sar die Daten auf fortlaufender Basis zur Verf�gung stellt und daher besser geeignet zum Einholen von Langzeit-Durchschnittswerten ist oder auch f�r die Erstellung von CPU-Auslastungsdiagrammen.

Auf Multiprozessor-Systemen kann der sar -U-Befehl Statistiken f�r einen individuellen Prozessor oder auch f�r alle Prozessoren gleichzeitig erstellen. Hier ist ein Beispiel eines sar -U ALL-Output:

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
        

Der Befehl sar -w erstellt einen Report �ber die Anzahl von Kontext-Switches pro Sekunde und gibt dabei zus�tzlichen Einblick, wenn es darum geht wo CPU-Zyklen verbraucht werden:

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
        

Es ist ebenso m�glich, zwei verschiedene sar-Reporte �ber Interrupt-Aktivit�t zu erstellen. Der erste Report (mittels sar -I SUM-Befehl erstellt) zeigt eine einzige "Interrupts pro Sekunde"-Statistik an:

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
        

Durch das Benutzen des Befehls sar -I PROC ist es m�glich Interrupt-Aktivit�t in Prozessoren aufzuschl�sseln (auf Multiprozessor-Systemen) und in Interrupt-Ebenen (von 0 bis 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
        

Dieser Report (welcher horizontal abgeschnitten wurde, um auf diese Seite zu passen) beinhaltet eine Rubrik f�r jede Interrupt-Ebene (wie zum Beispiel das i002/s-Feld, das die Rate f�r Interrupt-Ebene 2 darstellt). Wenn dies ein Multiprozessor-System w�re, dann g�be es eine Zeile pro Beispiel-Periode f�r jede einzelne CPU.

Beachten Sie auch bei diesem Report, dass von sar spezifische Interrupt-Felder entweder hinzuf�gt oder entfernt werden, wenn keine Daten f�r dieses Feld gesammelt werden. Der oben angef�rte Report stellt dahingehend ein Beispiel zur Verf�gung, indem dieser am Ende Interrupt-Ebenen (3 und 10) beinhaltet, die zu Beginn der Abfrageperiode nicht vorhanden waren.

AnmerkungAnmerkung
 

Es gibt noch zwei andere Interrupt-bezogene sar-Reporte — sar -I ALL und sar -I XALL. Jedoch sammelt die standardm��ige Konfiguration f�r sadc nicht die notwendige Information f�r diese Reporte. Dies kann durch das Bearbeiten der Datei /etc/cron.d/sysstat ge�ndert werden, indem diese Zeile ver�ndert wird:

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

Zu dieser:

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

Beachten Sie dabei, dass diese �nderung die Sammlung zus�tzlicher Informationen im Falle von sadc und dies gleichzeitig gr��ere Dateigr��en zur Folge hat. Stellen Sie daher sicher, dass Ihre Systemkonfiguration den zus�tzlichen Verbrauch von Platz unterst�tzt.

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