Der unbekannte Befehl – „sar“ der Retrosammler

Ein weiteres Kind aus der Familie der sysstat-Programme ist sar was für „System Activity Report“ steht. sar besteht eigentlich aus folgenden Teilprogrammen:

  • sar – zeigt die aufgezeichneten Daten an.
  • sadc – der „System Activity Data Collector“ zeichnet die Daten zu Systemaktivitäten im binären Format auf.
  • sa1 – ein BASH Skript was sadc im Hintergrund nutzt. Es wird alle zehn Minuten per crond aufgerufen (/etc/cron.d/sysstat).
  • sa2 – ein BASH Skript das zum Schreiben des täglichen Reports verwendet wird. Es wird per crond täglich ein Mal aufgerufen (/etc/cron.d/sysstat).
  • sadf – zeigt die aufgezeichneten Daten an und bietet dabei unterschiedliche Formate wie CSV, XML usw. an.

Das Programm sar dient zur Ausgabe von gesammelten Betriebsdaten wie CPU-Last, Arbeitsspeicherauslastung, Netzwerklast oder Aktivitäten der Blockdevices wie Festplatten. Gefüttert wird diese Datensammlung durch sadc welches vorher erst aktiviert werden muss. Dies geschieht auf Debian-Systemen unter /etc/default/sysstat indem man die (einzig wirksame) Zeile mit dem Inhalt ENABLED=“false“ auf ENABLED=“true“ setzt. sar kann nun diese Daten rückwirkend bis zu einem Monat abrufen. Die gesammelten Daten werden dann in Debian unter /var/log/sysstat abgelegt. Eine Konfigurationsdatei ist unter /etc/sysstat/sysstat zu finden.

Ein Aufruf ohne Argumente gibt die Daten zur CPU-Auslastung des laufenden Tages aus. sar kann aber auch aktuelle Werte ausgeben. Um mit sar die aktuelle CPU-Last zu ermitteln kann dies Beispielsweise einfach mit dem Aufruf sar 5 4 erfolgen (hier wurden die farbliche Unterlegung verzichtet):

# sar 5 4
Linux 4.9.0 (Marvin)         07.07.2020      _x86_64_        (4 CPU)

18:22:21        CPU     %user     %nice   %system   %iowait    %steal     %idle
18:22:26        all      0,58      0,00      0,12      0,00      0,00     99,31
18:22:31        all      0,77      0,00      0,11      0,00      0,00     99,12
18:22:36        all      0,69      0,00      0,15      0,00      0,00     99,16
18:22:41        all      1,23      0,00      0,34      0,00      0,00     98,43
Durchschn.:     all      0,81      0,00      0,18      0,00      0,00     99,00

sar ermittelt hier vier mal in fünf Sekunden-Intervallen die aktuelle CPU-Last und als letzte Zeile den Mittelwert.

Durch das Benutzen der Optionen -s (hh:mm:ss) und -e (hh:mm:ss) können die Werte des aktuellen Tags über einen bestimmten Zeitraum abgerufen werden:

$ sar -s 12:00:00 -e 12:40:00
Linux 4.9.0 (Marvin)         08.07.2020      _x86_64_        (4 CPU)

12:05:01        CPU     %user     %nice   %system   %iowait    %steal     %idle
12:15:02        all      0,75      0,00      1,06      0,00      0,00     98,19
12:25:02        all      1,17      0,00      1,04      0,00      0,00     97,80
12:35:02        all      1,19      0,00      1,14      0,00      0,00     97,67
Durchschn.:     all      1,04      0,00      1,08      0,00      0,00     97,89

sar kann verschiedene aufgezeichnete Systemaktivitäten anzeigen und diese Datentypen kann man sich natürlich einzeln ausgeben lassen. Alle aufgezeichnete Datentypen werden einfach mit der Option -A ausgegeben was aber dazu führt eine kaum verwertbaren langen Ausgabe zu erhalten.  Wenn man ältere aufgezeichnete Werte (zur Erinnerung die befinden sich unter Debian unter /var/log/sysstat als Dateien sar mit einer Zahl als Endung) so kann man das durch den Aufruf mit der Option -f, also beispielsweise sar -A -f /var/log/sysstat/sa07, erreichen. Nun kann sar aber zwischen verschiedenen Quellen unterscheiden und das wird auch wieder durch Optionen erreicht:

  • -P – Auswahl der Prozessoraktivität (nachgestellte Zahl gibt bei Mehrprozessorsystemen die Prozessornummer an oder ALL für alle Prozessoren)
  • -r – Auswahl der RAM-Auslastung
  • -q – Auswahl von load average
  • -b – Auswahl der I/O-Transferraten
  • -m DEV – Auswahl der Netzwerklast (DEV ist hier ein Schlüsselwort und für näheres die Manpage von sar bemühen)

 

kais-universum.de