Dieser Artikel stellt 10 Möglichkeiten vor, wie Sie den Befehl System Activity Report (sar) verwenden können, um Ressourcen in Linux® zu überwachen.
1. Anzeige der Gesamtauslastung aller CPUs
Führen Sie den folgenden Befehl aus, um eine Zusammenfassung der CPU-Auslastung anzuzeigen:
sar -u
Dieser Befehl gibt die kumulative Echtzeit-Ressourcennutzung aller CPUs aus.
Sie können diesem Befehl weitere Parameter hinzufügen. Beispiel:Hinzufügen von 1 3
am Ende des Befehls, wie in den folgenden Beispielen gezeigt, für alle 1 Sekunde insgesamt 3 Mal:
sar -u 1 3
Die Ausgabe ähnelt dem folgenden Beispiel:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:27:32 PM CPU %user %nice %system %iowait %steal %idle
01:27:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00
01:27:34 PM all 0.25 0.00 0.25 0.00 0.00 99.50
01:27:35 PM all 0.75 0.00 0.25 0.00 0.00 99.00
Average: all 0.33 0.00 0.17 0.00 0.00 99.50
Das letzte Feld, %idle
, gibt die CPU-Last an.
Der Befehl hat die folgenden Variationen:
sar -u
:Zeigt die CPU-Auslastung für den aktuellen Tag an.sar -u 1 3
:Zeigt dreimal alle 1 Sekunde die Echtzeit-CPU-Auslastung an.sar -u ALL
:Dasselbe wiesar -u
Befehl, zeigt aber zusätzliche Felder an.sar -u ALL 1 3
:Dasselbe wiesar -u 1 3
Befehl, zeigt aber zusätzliche Felder an.sar -u -f /var/log/sa/sa10
:Zeigt die CPU-Auslastung für den zehnten Tag des Monats absa10
an Datei.
2. CPU-Auslastung nach CPU oder Kern anzeigen
Führen Sie den folgenden Befehl aus, um die CPU-Auslastung nach CPU oder Kern anzuzeigen:
sar -P ALL 1 1
Der -P ALL
Flag gibt an, dass Sie Statistiken für alle einzelnen Kerne anzeigen möchten.
In der CPU
Spalte der folgenden Beispielausgabe, 0
, 1
, 2
, und 3
sind CPU-Kernnummern:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:34:12 PM CPU %user %nice %system %iowait %steal %idle
01:34:13 PM all 11.69 0.00 4.71 0.69 0.00 82.90
01:34:13 PM 0 35.00 0.00 6.00 0.00 0.00 59.00
01:34:13 PM 1 22.00 0.00 5.00 0.00 0.00 73.00
01:34:13 PM 2 3.00 0.00 1.00 0.00 0.00 96.00
01:34:13 PM 3 0.00 0.00 0.00 0.00 0.00 100.00
Wenn Sie Statistiken nur für den zweiten Kern anzeigen möchten, verwenden Sie -P 1
Flag (da Kernnummern bei 0 beginnen), wie im folgenden Beispiel gezeigt:
sar -P 1 1 1
Die Ausgabe sieht wie im folgenden Beispiel aus:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:36:25 PM CPU %user %nice %system %iowait %steal %idle
01:36:26 PM 1 8.08 0.00 2.02 1.01 0.00 88.89
Möglicherweise finden Sie auch die folgenden Variationen hilfreich:
sar -P ALL
:Zeigt die CPU-Auslastung für jeden Kern für den aktuellen Tag an.sar -P ALL 1 3
:Zeigt die Echtzeit-CPU-Auslastung jedes Kerns alle 1 Sekunde dreimal an.sar -P 1
:Zeigt die CPU-Auslastung für Kern Nummer 1 für den aktuellen Tag an.sar -P 1 1 3
:Zeigt die Echtzeit-CPU-Auslastung für Kern Nummer 1 alle 1 Sekunde für 3 Mal an.sar -P ALL -f /var/log/sa/sa10
:Zeigt die CPU-Nutzung für jeden Kern für den zehnten Tag des Monats absa10
an Datei.
3. Freien und belegten Speicher anzeigen
Führen Sie den folgenden Befehl aus, um freien und belegten Speicher anzuzeigen:
sar -r
Wenn Sie 1 3
hinzufügen zu dem Befehl, wie im folgenden Beispiel gezeigt, meldet die Ausgabe alle 1 Sekunde insgesamt 3 Mal:
sar -r 1 3
Die Ausgabe sieht wie im folgenden Beispiel aus, in dem kbmemfree
ist freier Speicher und kbmemused
verwendeter Speicher:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
07:28:06 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact
07:28:07 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
07:28:08 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
07:28:09 AM 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
Average: 6209248 2097432 25.25 189024 1796544 141372 0.85 1921060 88204
Dieser Befehl hat die folgenden Variationen:
sar -r
sar -r 1 3
sar -r -f /var/log/sa/sa10
4. Auslagerungsspeichernutzung anzeigen
Führen Sie den folgenden Befehl aus, um den verwendeten Auslagerungsspeicher anzuzeigen:
sar -S
Wenn Sie 1 3
hinzufügen bis zum Ende des Befehls, wie im folgenden Beispiel gezeigt, meldet die Ausgabe alle 1 Sekunde insgesamt 3 Mal:
sar -S 1 3
Die Ausgabe ähnelt dem folgenden Beispiel:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
07:31:06 AM kbswpfree kbswpused %swpused kbswpcad %swpcad
07:31:07 AM 8385920 0 0.00 0 0.00
07:31:08 AM 8385920 0 0.00 0 0.00
07:31:09 AM 8385920 0 0.00 0 0.00
Average: 8385920 0 0.00 0 0.00
Hinweis :Wenn der kbswpused
und %swpused
sind bei 0
, dann tauscht Ihr System nicht aus.
Dieser Befehl hat die folgenden Variationen:
sar -S
sar -S 1 3
sar -S -f /var/log/sa/sa10
Zusätzliche Swap-Space-Befehle
Möglicherweise finden Sie auch die folgenden Swap-Space-Befehle hilfreich:
- Verwenden Sie
sar -R
um die Anzahl der Speicherseiten zu identifizieren, die das System freigegeben, verwendet und zwischengespeichert hat. - Verwenden Sie
sar -H
um die verwendeten und verfügbaren Linux® HugePages (in Kilobyte (KB)) zu identifizieren. - Verwenden Sie
sar -B
zum Generieren von Paging-Statistiken, wie z. B. die Anzahl der KB, die pro Sekunde von der Festplatte ein- (und ausgelagert) werden. - Verwenden Sie
sar -W
zum Generieren von Seitenwechselstatistiken, wie z. B. Seitenwechsel pro Sekunde.
5. E/A-Aktivitäten anzeigen
Führen Sie den folgenden Befehl aus, um die gesamten Eingabe- und Ausgabeaktivitäten (E/A) anzuzeigen:
sar -b
Die Ausgabe dieses Befehls zeigt E/A-Statistiken an. Wenn Sie 1 3
hinzufügen bis zum Ende des Befehls, wie im folgenden Beispiel gezeigt, meldet die Ausgabe alle 1 Sekunde insgesamt 3 Mal:
sar -b 1 3
Die Ausgabe sieht wie im folgenden Beispiel aus:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:56:28 PM tps rtps wtps bread/s bwrtn/s
01:56:29 PM 346.00 264.00 82.00 2208.00 768.00
01:56:30 PM 100.00 36.00 64.00 304.00 816.00
01:56:31 PM 282.83 32.32 250.51 258.59 2537.37
Average: 242.81 111.04 131.77 925.75 1369.90
Die Ausgabe enthält die folgenden Felder:
tps
:Transaktionen pro Sekunde (Lesen und Schreiben)rtps
:Transaktionen pro Sekunde lesenwtps
:Transaktionen pro Sekunde schreibenbread/s
:Gelesene Bytes pro Sekundebwrtn/s
:Geschriebene Bytes pro Sekunde
Dieser Befehl hat die folgenden Variationen:
sar -b
sar -b 1 3
sar -b -f /var/log/sa/sa10
Hinweis :Verwenden Sie sar -v
um die Anzahl der Inode-Handler, Datei-Handler und Pseudo-Terminals anzuzeigen, die das System verwendet.
6. Anzeige der E/A-Aktivitäten einzelner Blockgeräte
Führen Sie den folgenden Befehl aus, um die E/A-Aktivitäten einzelner Blockgeräte anzuzeigen:
sar -d
Verwenden Sie sar -d
, um Aktivitäten nach einzelnen Blockgeräten (z. B. einem bestimmten Einhängepunkt, einer logischen Einheitsnummer (LUN) oder einer Partition) zu identifizieren , wie im folgenden Beispiel gezeigt:
sar -d 1 1
Die Ausgabe sieht wie im folgenden Beispiel aus:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:59:45 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
01:59:46 PM dev8-0 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM dev8-1 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM dev120-64 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM dev120-65 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM dev120-0 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM dev120-1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM dev120-96 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
01:59:46 PM dev120-97 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
In diesem Beispiel sind die Werte in DEV
Spalte stellen bestimmte Blockgeräte dar. Beispiel:dev53-1
bedeutet ein Blockgerät mit 53 als Major-Nummer und 1 als Minor-Nummer.
Sie können den hübschen Druck verwenden (-p
) wie im folgenden Beispiel gezeigt, damit die Spalte den tatsächlichen Gerätenamen anzeigt (z. B. sda, sda1 oder sdb1):
sar -p -d 1 1
Die Ausgabe sieht wie im folgenden Beispiel aus:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:59:45 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
01:59:46 PM sda 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM sda1 1.01 0.00 0.00 0.00 0.00 4.00 1.00 0.10
01:59:46 PM sdb1 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM sdc1 3.03 64.65 0.00 21.33 0.03 9.33 5.33 1.62
01:59:46 PM sde1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM sdf1 8.08 0.00 105.05 13.00 0.00 0.38 0.38 0.30
01:59:46 PM sda2 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
01:59:46 PM sdb2 1.01 8.08 0.00 8.00 0.01 9.00 9.00 0.91
Dieser Befehl hat die folgenden Variationen:
sar -d
sar -d 1 3
sar -d -f /var/log/sa/sa10
sar -p -d
7. Anzeige des Kontextwechsels pro Sekunde
Führen Sie den folgenden Befehl aus, um den Kontextwechsel pro Sekunde anzuzeigen:
sar -w
Dieser Befehl meldet die Gesamtzahl der pro Sekunde erstellten Prozesse und die Gesamtzahl der Kontextwechsel pro Sekunde. Wenn Sie 1 3
hinzufügen bis zum Ende des Befehls, wie im folgenden Beispiel gezeigt, meldet er alle 1 Sekunde insgesamt 3 Mal:
sar -w 1 3
Die Ausgabe ähnelt dem folgenden Beispiel:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
08:32:24 AM proc/s cswch/s
08:32:25 AM 3.00 53.00
08:32:26 AM 4.00 61.39
08:32:27 AM 2.00 57.00
Dieser Befehl hat die folgenden Variationen:
sar -w
sar -w 1 3
sar -w -f /var/log/sa/sa10
8. Zeigen Sie die Ausführungswarteschlange und den Lastdurchschnitt an
Führen Sie den folgenden Befehl aus, um die Ausführungswarteschlange und den Lastdurchschnitt anzuzeigen:
sar -q
Dieser Befehl meldet die Größe der Ausführungswarteschlange und den Lastdurchschnitt für die letzte Minute, die letzten 5 Minuten und die letzten 15 Minuten. Wenn Sie 1 3
hinzufügen bis zum Ende des Befehls, wie im folgenden Beispiel gezeigt, meldet er alle 1 Sekunde insgesamt 3 Mal:
sar -q 1 3
Die Ausgabe sieht wie im folgenden Beispiel aus:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
06:28:53 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
06:28:54 AM 0 230 2.00 3.00 5.00 0
06:28:55 AM 2 210 2.01 3.15 5.15 0
06:28:56 AM 2 230 2.12 3.12 5.12 0
Average: 3 230 3.12 3.12 5.12 0
Hinweis :Der blocked
-Spalte zeigt die Anzahl der Tasks an, die derzeit blockiert sind und auf den Abschluss von E/A-Vorgängen warten.
Dieser Befehl hat die folgenden Variationen:
sar -q
sar -q 1 3
sar -q -f /var/log/sa/sa10
9. Netzwerkstatistiken anzeigen
Führen Sie den folgenden Befehl aus, um Netzwerkstatistiken anzuzeigen:
sar -n
Dieser Befehl meldet verschiedene Netzwerkstatistiken, wie z. B. die Anzahl der über die Netzwerkkarte empfangenen (gesendeten) Pakete oder die Anzahl der aufgetretenen Paketfehler. Wenn Sie 1 3
hinzufügen bis zum Ende des Befehls wird insgesamt 3 Mal alle 1 Sekunde gemeldet.
Sie können dem Befehl auch ein Schlüsselwort hinzufügen, wie im folgenden Beispiel gezeigt:
sar -n KEYWORD
KEYWORD
kann eine der folgenden Optionen sein:
DEV
:Zeigt wichtige Statistiken für Netzwerkgeräte anEDEV
:Ausfallstatistiken für Netzwerkgeräte anzeigenNFS
:Zeigt Aktivitäten des Network File System (NFS)-Clients anNFSD
:Zeigt NFS-Serveraktivitäten anSOCK
:Zeigt die Sockets an, die für IPv4 verwendet werdenIP
:Zeigt den IPv4-Netzwerkverkehr anEIP
:Zeigt IPv4-Netzwerkfehler anICMP
:Zeigt den ICMPv4-Netzwerkverkehr anEICMP
:Zeigt ICMPv4-Netzwerkfehler anTCP
:Zeigt den TCPv4-Netzwerkverkehr anETCP
:Zeigt TCPv4-Netzwerkfehler anUDP
:Zeigt den UDPv4-Netzwerkverkehr anSOCK6
,IP6
,EIP6
,ICMP6
undUDP6
:Zeigt IPv6-Netzwerkinformationen anALL
:Zeigt alle vorangehenden Informationen an
Das folgende Beispiel verwendet DEV
Stichwort:
sar -n DEV 1 1
Die Ausgabe sieht wie im folgenden Beispiel aus:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:11:13 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
01:11:14 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
01:11:14 PM eth0 342.57 342.57 93923.76 141773.27 0.00 0.00 0.00
01:11:14 PM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10. SAR-Daten nach Startzeit melden
Führen Sie den folgenden Befehl aus, um sar-Daten nach Startzeit zu melden:
sar -s
Wenn Sie historische SAR-Daten von /var/log/sa/saXX
anzeigen Datei mit sar -f
Option zeigt die Ausgabe alle SAR-Daten für diesen bestimmten Tag beginnend um 00:00 Uhr
Sie können den -s hh:mi:ss
verwenden Option zum Festlegen der Startzeit. Wenn Sie beispielsweise sar -s 10:00:00
angeben , zeigt die Ausgabe des Befehls die Sardata beginnend um 10:00 Uhr an (anstelle der Standardeinstellung Mitternacht).
Sie können die -s
kombinieren Flagge mit anderen sar-Flaggen. Um beispielsweise den Auslastungsdurchschnitt am 26. des aktuellen Monats ab 10 Uhr zu melden, kombinieren Sie -q
und -s
Flags, wie im folgenden Beispiel gezeigt:
sar -q -f /var/log/sa/sa23 -s 10:00:01
Die Ausgabe sieht wie im folgenden Beispiel aus:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
10:10:01 AM 0 127 2.00 3.00 5.00 0
10:20:01 AM 0 127 2.00 3.00 5.00 0
...
11:20:01 AM 0 127 5.00 3.00 3.00 0
12:00:01 PM 0 127 4.00 2.00 1.00 0
Sie können keine Endzeit angeben. Stattdessen müssen Sie den head
verwenden Befehl. Wenn Sie beispielsweise bei 10 Uhr morgens beginnen und 7 Einträge sehen möchten, leiten Sie die vorangehende Ausgabe an head -n 10
weiter , wie im folgenden Beispiel gezeigt:
sar -q -f /var/log/sa/sa23 -s 10:00:01 | head -n 10
Die Ausgabe sieht wie im folgenden Beispiel aus:
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
10:10:01 AM 0 127 2.00 3.00 5.00 0
10:20:01 AM 0 127 2.00 3.00 5.00 0
10:30:01 AM 0 127 3.00 5.00 2.00 0
10:40:01 AM 0 127 4.00 2.00 1.00 2
10:50:01 AM 0 127 3.00 5.00 5.00 0
11:00:01 AM 0 127 2.00 1.00 6.00 0
11:10:01 AM 0 127 1.00 3.00 7.00 2