Für eine Ad-hoc-Analyse rufen Sie sar wie iostat interaktiv auf der Kommandozeile auf. Samples und Intervall bestimmen auch hier, wieviele Datensätze in welchen Abständen sar auf die Standardausgabe schreibt. Das folgende Beispiel gibt Daten über den CPU-Verbrauch aus – drei Datensätze im Abstand von zwei Sekunden (Listing 5).
Listing 5: sar misst CPU-Verbrauch
$ sar -u 2 3 Linux 3.13.0-36-generic (X220) 2014-10-05 _x86_64_ (4 CPU) 13:15:58 CPU %user %nice %system %iowait %steal %idle 13:16:00 all 7,91 0,00 1,38 0,00 0,00 90,70 13:16:02 all 5,56 0,00 1,39 0,00 0,00 93,06 13:16:04 all 5,42 0,00 0,88 0,00 0,00 93,70 Average: all 6,30 0,00 1,22 0,00 0,00 92,49
Der zweite Weg führt über eine binäre Ausgabedatei, deren Werte später mit dem sar-Kommando extrahiert werden. Sie erhalten in der binären Datei zunächst alle Werte, die sar abfragen kann. Der Befehl
sar -o sar.out 5 >/dev/null 2>&1
zeichnet im Fünf-Sekunden-Intervall alle Statistiken in der binären Datei sar.out auf. Die Option "-o" bewirkt übrigens, dass sar alle Daten sammelt. Dem Data Collector sadc wird nämlich die Option "-S ALL" übergeben. Im Analyse-Schritt schränken Sie den abzufragenden Bereich dann einfach ein (Listing 6). Der Fokus liegt hier nur auf dem Traffic der Netzwerk-Interfaces. Aus derselben Datei lassen sich genauso gut I/O-Transferraten abfragen (Listing 7). Welche Bereiche sar abdeckt, zeigt eindrucksvoll Bild 1, eine Grafik von Brendan Gregg [4].
Listing 6: sar-Analyse
$ sar -n DEV -f sar.out Linux 3.13.0-36-generic (X220) 2014-10-10 _x86_64_ (4 CPU) 16:40:49 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 16:40:54 ppp0 2,60 2,80 0,23 0,18 0,00 0,00 0,00 0,00
Sar besitzt nicht nur den interaktiven Modus, sondern zeichnet Daten auch über längere Zeit hinweg auf. Das ist besonders hilfreich, um die Auswirkungen von regelmäßigen Änderungen an einem System zu dokumentieren. Am besten richten Sie sadc gleich zu Beginn einer System-Laufbahn ein, da dann Daten zur Baseline-Performance bereitstehen.
Später wird sadc über cron regelmäßig aufgerufen. Unter Ubuntu genügt es in der Datei /etc/default/sysstat den Parameter auf ENABLED="true" zu ändern. Nach einem Neustart von sysstat über
$ sudo service sysstat restart
startet der Data Collector. Im Hintergrund sind über cron zwei Skripte aktiv geworden:
1. sa1, definiert in
»/etc/cron.d/sysstat
«
, steuert sadc alle zehn Minuten zur Datensammlung an.
2. sa2, definiert in
»/etc/cron.daily/sysstat
«
, generiert täglich über sar aus den Binärdaten einen Report.
Die eigentlichen Performance-Daten, generiert von den beiden Skripten, verweilen im Verzeichnis /var/log/sysstat. Die Form der Dateien saX und sarX kennzeichnen über X den Tag der Aufzeichnung. Standardmäßig bewahrt sadc diese Log-Dateien rückwirkend sieben Tage auf, dieses Intervall lässt sich in der Datei
»/etc/sysstat/sysstat
«
vergrößern.
Listing 7: sar misst I/O-Transfer
$ sar -b -f sar.out Linux 3.13.0-36-generic (X220) 2014-10-05 _x86_64_ (4 CPU) 13:26:21 tps rtps wtps bread/s bwrtn/s 13:26:26 90,40 87,20 3,20 900,80 267,20 13:26:31 1,20 0,00 1,20 0,00 67,20