GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Sar-Befehl in Linux mit Beispielen


Der Befehl Sar wird verwendet, um statistische Berichte über eine Vielzahl von Ressourcen zu erstellen, einschließlich CPU-Auslastung, Speicherauslastung, Verbrauch von E/A-Geräten, Netzwerküberwachung, Swap und Lastdurchschnitt.

SAR steht für System Activity Reporter, sehr nützliche Tools für jeden Linux-Administrator, um die Systemleistung zu überwachen und Engpässe zu untersuchen. Dieses Tool wird vom sysstat-Paket bereitgestellt.

In diesem Tutorial erfahren Sie, wie Sie das sysstat-Paket installieren und den Befehl sar unter Linux verwenden.

Sysstat-Paket installieren

Das sysstat-Paket enthält viele Dienstprogramme, die eine Sammlung von Leistungsüberwachungstools für Linux-Systeme darstellen. Sar ist ein Werkzeug, das zum Paket sysstat gehört.

Installieren des sysstat-Pakets auf RHEL und CentOS

$ sudo yum install sysstat

Sobald der Sysstat erfolgreich installiert wurde, überprüfen Sie die Installation mit dem Befehl:

$ which sar
/usr/bin/sar

Standardmäßig speichert sysstat die Serverstatistiken in der Datei „/var/log/sa/saDD“ (TT ist der Tag des Monats, zum Beispiel:/var/log/sa/sa08) und bewahrt die Daten 28 Tage lang auf. Wenn Sie die Daten länger behalten möchten, müssen Sie die sysstat-Konfigurationsdatei „/etc/sysconfig/sysstat“ ändern.

$ sudo cat /etc/sysconfig/sysstat

HISTORY=28

Ändern Sie den Wert von HISTORY mit der Anzahl der Tage, für die Sie die Protokolle aufbewahren möchten.

Installieren des Sysstat-Pakets unter Ubuntu und Debian

$ sudo apt install sysstat

Überprüfung der Installation durch Befehl:

$ which sar
/usr/bin/sar

Unter Ubuntu müssen wir es aktivieren, während CentOS nicht benötigt wird.

Verwenden Sie Ihren bevorzugten Editor (vim, nano oder gedit), um die folgende Datei zu bearbeiten:

$ sudo nano /etc/default/sysstat

Und setzen Sie ENABLED auf true :

ENABLED="true"

Starten Sie den Dienst neu

$ sudo service sysstat restart

Unter Ubuntu ist die Konfigurationsdatei '/etc/sysstat/sysstat' und die Daten werden standardmäßig 7 Tage aufbewahrt.

$ cat /etc/sysstat/sysstat

HISTORY=7

Ab Fedora 21 ist sysstat standardmäßig enthalten und Sie müssen lediglich die folgenden Befehle ausführen:

$ sudo systemctl enable sysstat.service
$ sudo systemctl start sysstat.service

Es gibt einen Cron-Job für sysstat, der alle 10 Minuten läuft, um Daten zu sammeln und sie in der entsprechenden Datei /var/log/sa/saDD zu speichern. Wenn Sie das Intervall dieses Cron-Laufs ändern möchten, können Sie es in '/etc/cron.d/sysstat' ändern.

Für systemd ruft die Timer-Unit-Datei alle 10 Minuten sysstat-collect.service (/usr/lib/systemd/system/sysstat-collect.service) auf, um die Statistiken zu sammeln.

$ cat /etc/cron.d/sysstat

# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

Sar-Befehlsverwendung

Die grundlegende Syntax für die Verwendung des sar-Befehls lautet wie folgt:

sar [option] [-o filename] [-f filename] [interval] [count]

Wo:

Intervall :der Zeitraum in Sekunden.

Zählung: wie oft, um Ausgabestatistiken zu erstellen.

1. CPU-Aktivität ermitteln

Standardmäßig (ohne andere Optionen) meldet der Befehl sar die CPU-Aktivität des Servers. Auch die Option -u kann verwendet werden, um den CPU-Auslastungsbericht zu erhalten.

Wenn Sie den CPU-Aktivitätsbericht dreimal alle 2 Sekunden erhalten möchten, können Sie den folgenden sar-Befehl verwenden:

$ sar -u 2 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	09/06/2020 	_x86_64_	(2 CPU)

22:26:54        CPU     %user     %nice   %system   %iowait    %steal     %idle
22:26:56        all      4,03      0,00      0,50      0,00      0,00     95,47
22:26:58        all      8,08      0,00      0,51      0,00      0,00     91,41
22:27:00        all     12,50      0,00      1,00      0,00      0,00     86,50
Average:        all      8,21      0,00      0,67      0,00      0,00     91,11

Wo:

%Benutzer gibt den Prozentsatz der CPU-Auslastung an, der während der Ausführung auf Benutzerebene (Benutzerbereich) auftrat

%system gibt den Prozentsatz der CPU-Auslastung an, die während der Ausführung auf Systemebene aufgetreten ist (Kernel-Speicherplatz)

%leer ist der Prozentsatz der Zeit, in der die CPU oder die CPUs im Leerlauf waren und das System keine ausstehende Festplatten-E/A-Anforderung hatte.

Wenn Sie die Ausgabe in einer Datei in binärer Form erhalten möchten, müssen Sie -o anhängen Dateiname mit dem Befehl sar. Zum Beispiel:

$ sar -u 2 3 -o log-file

Außerdem können Sie den CPU-Aktivitätsbericht eines bestimmten Tages abrufen, z. B.:09. Juni 2020. Sie finden ihn unter:

$ sudo sar -u -f /var/log/sa/sa09

2. Ermitteln Sie die CPU-Auslastung für jeden Prozessor

Das -u Option liefert die CPU-Auslastung auf allen Prozessoren. Wenn Sie die CPU-Aktivität auf allen Prozessoren separat finden möchten, müssen Sie das -P verwenden Option.

$ sar -P ALL 1 1

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

05:38:18        CPU     %user     %nice   %system   %iowait    %steal     %idle
05:38:19        all      3,03      0,00      0,00      0,00      0,00     96,97
05:38:19          0      3,96      0,00      0,99      0,00      0,00     95,05
05:38:19          1      3,00      0,00      0,00      0,00      0,00     97,00

Average:        CPU     %user     %nice   %system   %iowait    %steal     %idle
Average:        all      3,03      0,00      0,00      0,00      0,00     96,97
Average:          0      3,96      0,00      0,99      0,00      0,00     95,05
Average:          1      3,00      0,00      0,00      0,00      0,00     97,00

3. Speichernutzung ermitteln

Die Speicherauslastung (belegter und freier Speicher des Servers) über die Zeit können Sie mit dem -r ermitteln wechseln.

$ sar -r 1 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

05:41:04    kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
05:41:05       855300   3025220     77,96         0   1495276   2426864     30,55   1265008   1158172       100
05:41:06       854800   3025720     77,97         0   1495276   2426864     30,55   1265132   1158172       100
05:41:07       855032   3025488     77,97         0   1495276   2426864     30,55   1265012   1158172       100
Average:       855044   3025476     77,97         0   1495276   2426864     30,55   1265051   1158172       100

Wo:

kbmemfree gibt die Menge des verfügbaren freien Speichers in Kilobyte an.

kbmemused gibt die Menge des belegten Speichers in Kilobyte an. Dabei wird der vom Kernel selbst verwendete Speicher nicht berücksichtigt.

Wenn Sie die Speichernutzung für einen bestimmten Tag erfassen möchten, sagen Sie:Sept. 05, müssen Sie ihn mit dem folgenden Befehl ausführen:

$ sar -r -f /var/log/sa/sa05

4. Suchen Sie nach Swapping-Aktivitäten

Mit -W können Sie die Swap-Nutzung der Maschine prüfen Option.

$ sar -W 1 3
Linux 2.6.18-274.18.1.el5 (myserver) 09/06/2012
03:31:12 PM pswpin/s pswpout/s
03:31:13 PM 16.16 0.00
03:31:14 PM 16.00 0.00
03:31:15 PM 15.84 0.00
Average: 16.00 0.00

Wo:

pswpin/s gibt die Gesamtzahl der Auslagerungsseiten an, die das System pro Sekunde eingelesen hat.

pswpout/s gibt die Gesamtzahl der Auslagerungsseiten an, die das System pro Sekunde ausgibt.

Wenn Sie die Swap-Verwendungen für einen bestimmten Tag, z. B. den 5. September, sammeln möchten, müssen Sie dies mit dem folgenden sar-Befehl ausführen:

$ sar -W -f /var/log/sa/sa05

5. Finden Sie Lastdurchschnitte über die Zeit

Mit -q finden Sie die durchschnittliche Belastung über die Zeit Option.

$ sar -q 1 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

06:16:13      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
06:16:14            0       329      0,00      0,04      0,09         0
06:16:15            0       329      0,00      0,04      0,09         0
06:16:16            0       329      0,00      0,04      0,09         0
Average:            0       329      0,00      0,04      0,09         0

Wo:

runq-sz :Zeigt die Länge der Ausführungswarteschlange an (Anzahl der Aufgaben, die auf die Ausführungszeit warten).

plist-sz :Zeigt die Anzahl der Aufgaben in der Aufgabenliste an.

ldavg-1/5/15 :Durchschnittliche Systemlast der letzten Minute/ der letzten 5 Minuten/ der letzten 15 Minuten.

Wenn Sie die Lastdurchschnitte für einen bestimmten Tag sammeln möchten, sagen wir den 5. September, müssen Sie ihn mit dem folgenden sar-Befehl ausführen:

$ sar -q -f /var/log/sa/sa05

6. Bericht über gemountete Dateisysteme

Sie können die Statistiken für aktuelle Dateisysteme mit dem -F abrufen Möglichkeit

$ sar -F 2 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

06:30:18     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
06:30:20        30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
06:30:20          796       218     21,52     21,52    523947       341      0,07 /dev/sda1

06:30:20     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
06:30:22        30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
06:30:22          796       218     21,52     21,52    523947       341      0,07 /dev/sda1

06:30:22     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
06:30:24        30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
06:30:24          796       218     21,52     21,52    523947       341      0,07 /dev/sda1

Summary:     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
Summary         30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
Summary           796       218     21,52     21,52    523947       341      0,07 /dev/sda1

Wenn Sie die gemounteten Dateisysteme für einen bestimmten Tag sammeln möchten, sagen Sie den 10. Juni.

$ sar -F -f /var/log/sa/sa10

7. Details zu Inodes, Kernel-Tabellen und Dateitabellen melden

Sie können die Details von Inode, Prozessen, Kernel-Threads und Dateitabellen abrufen, die vom System verwendet werden, indem Sie den Befehl sar mit -v verwenden Option.

$ sar -v 2 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

06:57:23    dentunusd   file-nr  inode-nr    pty-nr
06:57:25       160833      2400    132081         3
06:57:27       160833      2400    132081         3
06:57:29       160833      2400    132081         3
Average:       160833      2400    132081         3

Wo:

dentunusd :Anzahl unbenutzter Cache-Einträge im Verzeichnis-Cache

Datei-Nr: Anzahl der verwendeten Datei-Handles

Inode-Nr: Inode-Handler

pty-nr :Pseudoterminals

8. CPU-Engpass prüfen

Sie können den sar-Befehl verwenden, um herauszufinden, welche Interrupt-Nummer möglicherweise einen CPU-Engpass verursacht.

Im Beispiel unten #9 war die höchste ohne Systemunterbrechung #0 .

$ sar -I XALL 2 10
02:07:10 AM INTR intr/s
02:07:12 AM 0 992.57
02:07:12 AM 1 0.00
02:07:12 AM 2 0.00
02:07:12 AM 3 0.00
02:07:12 AM 4 0.00
02:07:12 AM 5 0.00
02:07:12 AM 6 0.00
02:07:12 AM 7 0.00
02:07:12 AM 8 0.00
02:07:12 AM 9 350.50

Details in der Datei „/proc/interrupts“ sind ebenfalls hilfreich für Sie. Der Interrupt hält die Verarbeitung vorübergehend an, damit I/O- oder andere Operationen ausgeführt werden können. Die Verarbeitung wird fortgesetzt, nachdem die spezifische Operation stattgefunden hat. Daher ist es sehr wichtig, dass jedes in der Maschine installierte Gerät mit einer Interrupt-Einstellung versehen sein muss, die nicht mit den Einstellungen kollidiert, die von der Hardware und anderen Peripheriegeräten verwendet werden.

$ sudo cat /proc/interrupts

           CPU0       CPU1       
  0:         48          0   IO-APIC-edge      timer
  1:         54          0   IO-APIC-edge      i8042
  8:          1          0   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 12:         35        116   IO-APIC-edge      i8042
 14:          0          0   IO-APIC-edge      ata_piix
 15:          0          0   IO-APIC-edge      ata_piix
 16:        118       2513   IO-APIC-fasteoi   vmwgfx
 24:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 25:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 26:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 27:          0          0   PCI-MSI-edge      PCIe PME, pciehp
NMI:          0          0   Non-maskable interrupts
LOC:   35392807   14792833   Local timer interrupts
SPU:          0          0   Spurious interrupts
PMI:          0          0   Performance monitoring interrupts
IWI:    2677624     215297   IRQ work interrupts
...

Die erste Spalte bezieht sich auf die IRQ-Nummer. Die nächste Spalte gibt den Typ des Interrupts an und die letzte Spalte enthält den Namen des Geräts, das sich im IRQ befindet.

9. Netzwerkstatistiken melden

Um den Bericht der Netzwerkstatistik zu erhalten, verwenden Sie den Befehl sar mit -n Möglichkeit. Zum Beispiel:

$ sar -n DEV

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

19:20:23        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
19:20:24       ens192     11,00      4,00      1,80      2,75      0,00      0,00      0,00
19:20:24           lo     79,00     79,00     43,62     43,62      0,00      0,00      0,00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:       ens192     11,00      4,00      1,80      2,75      0,00      0,00      0,00
Average:           lo     79,00     79,00     43,62     43,62      0,00      0,00      0,00

Wo:

DEV :Statistiken von den Netzwerkgeräten werden gemeldet

GESICHT :Name der Schnittstelle (Im obigen Beispiel:ens192)

rxpck/s / txpck/s :Gesamtzahl der pro Sekunde empfangenen/gesendeten Pakete

Es gibt einige andere Optionen als DEV, wie zum Beispiel:

NFS :NFS-Client-Aktivitäten anzeigen

SOCKE :Zeigt die verwendeten Sockets an

TCP :gibt TCP v4-Netzwerkverkehr an

UDP :gibt UDP v4-Netzwerkverkehr an

Wenn Sie die Netzwerkstatistiken für einen bestimmten Tag, z. B. den 9. Juni, sammeln möchten, müssen Sie sie wie folgt ausführen:

$ sar -n DEV -f /var/log/sa/sa09

Sark-Diagramm

In den obigen Abschnitten wurde die Verwendung von sar vom Terminal aus erläutert. kSar ist eine Java-basierte GUI-Anwendung, die Ihre SAR-Daten visualisiert.

Installation von ksar:

$ sudo apt install openjdk-11-jdk
$ sudo yum install epel-release
$ sudo yum install java-openjdk

Laden Sie ksar herunter und entpacken Sie es:

$ wget https://sourceforge.net/projects/ksar/files/latest/download
$ mv download kSar.zip
$ unzip kSar.zip

Jetzt cd ins Verzeichnis

$ cd kSar-*

Machen Sie nun die Datei run.sh ausführbar und führen Sie sie als root aus.

$ chmod +x run.sh
$ sudo su
./run.sh

Jetzt können wir testen, indem wir den lokalen Befehl ausführen. Wir gehen zu Data > Run Local Command und dort können wir den Standardbefehl verwenden.

Als nächstes können wir uns die Diagramme ansehen, indem wir auf das linke Feld klicken und auf der rechten Seite das angezeigte Diagramm betrachten:

Es ist auch möglich, Diagramme aus einer Datei zu laden. Zuerst müssen wir sar:

ausführen
LC_ALL=C sar -A > /tmp/sar.data.txt

Und dann wählen wir in den Menüs Data > Load aus der Textdatei und suchen Sie die Datei in /tmp oder wo auch immer wir es gespeichert haben.

Schlussfolgerung

In diesem Tutorial haben wir gelernt, wie der sar-Befehl verwendet werden kann, um Ihnen zu helfen, die Nutzung von Systemressourcen zu erkennen und die Leistung zu verbessern, während Sie mit Ihrem Betriebssystem arbeiten.

Aus sar-Beispielen geht hervor, dass es sich um ein großartiges Tool zum Sammeln, Melden oder Speichern von Systemaktivitätsinformationen handelt.

Danke fürs Lesen und bitte hinterlassen Sie Ihren Vorschlag im Kommentarbereich unten.

Related Read: 10 Linux iostat Command to Report CPU and I/O Statistics

Linux
  1. wc Linux-Befehl mit Beispielen

  2. Linux-Sortierungsbefehl mit Beispielen

  3. Linux Tee-Befehl mit Beispielen

  4. Linux-Kopfbefehl mit Beispielen

  5. JQ-Befehl in Linux mit Beispielen

Linux-CD-Befehl mit Beispielen

Linux-Uhrbefehl mit Beispielen

Wartebefehl in Linux mit Beispielen

Linux-Exportbefehl mit Beispielen

Linux-IP-Befehl mit Beispielen

sar-Befehlsbeispiele unter Linux