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.
| Tipp |
---|
| 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.
| Anmerkung |
---|
| 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. |