sysstat +Linux + Python: CPU-Prozess grafisch visualisieren
Wir setzen den Fall, man möchte mal wissen, wie ist der Rechner ausgelastet? Die Lösung: sysstat.
Das kann sein, wenn man bestimmte Programme auswerten möchte, oder ob irgendwas schief läuft. Nach einem Update kann es schon mal vorkommen, dass ein Update nicht so sauber programmiert worden ist und im eigenen Betriebssystem für Unruhe sorgt.
Überprüfung der CPU-Auslastung
Im allgemeinen Fall kann man das in Linux mit dem Befehl top machen, dann sieht man für den Moment welches Programm gerade hochlastig läuft.
Natürlich es gibt Programme, die sind dann dauerhaft oben und auf quasi gesagt auf der Pole Position. Manchmal gibt es auch Routineaufgaben, die werden regelmäßig im System durchgeführt. Da läuft die CPU auch schon mal auf Hochtouren.
Das sollte einem nicht beunruhigen.
Das unübersichtliche in Top ist, dass man Prozesse an die Pole Position gelangen und dann nach drei Sekunden (so sind die Intervalle in Top eingestellt) wieder auf Position 2 oder 3 herunterfällt.
Dann sieht es so aus, als ob wieder alles normal wäre.
Ich sehe dann aber auch nicht den zeitlichen Verlauf der CPU-Auslastung.
Dazu habe ich jetzt ein universielles Pythonskript geschrieben, welches derzeit nur auf meinen Linux-Rechner läuft. Für Windows Rechner mit deren spezifischen Eigenarten der Ordnerstruktur müsste man es wiederum anpassen.
Für die Benutzung des Script braucht man das Programm sysstat. Dieses Programm muss man sich installieren bzw. vorher mal nachschauen, ob es nicht schon auf dem Rechner installiert ist.
Überprüfung der vorhandenen Installation von sysstat
Um nachzuschauen, ob es installiert worden ist, geht man in die Kommandozeile, ins Terminal oder Konsole. Dort gibt man den Befehl rpm -qa | grep sysstat ein dann sollte eine solche Ausgabe erfolgen.
sysstat-12.5.4-11.el9.x86_64
Die Versionsnummer kann eine andere sein, weil ich habe hier den 05.11.2026 und mit Sicherheit wird in der Zukunft eine neue Version des Programms geben.
Es ist nicht installiert?
Wenn jetzt doch kein Ergebnis gekommen ist, dann installiert man sich das Programm ganz bequem über den installieren Paketmanager.
Hier in AlmaLinux, welches zu Red Hat gehört, ist der Paketmanager DNF und somit heißt der Befehl:
sudo dnf install sysstat.
Die einfache Ausgabe in der Kommandozeile mit sysstat
Ich gehe in das Terminal, die Konsole und tippe dann
sar -u 2 5
Als Ergebnis erhalte ich dann folgendes:

Wie in zu 99,99999 % der Linux Fälle, kann man das auch in eine Text-Datei auslagern.
sar -u 2 5 > systemlog.txt
Dann erhalte ich eine normale Textdatei, die nicht so farbig markiert ist in dem Verzeichnis wo ich mich gerade befinde.
Wenn man nicht genau weiß, in welchem Verzeichnis man sich gerade befindet, lässt sich das mit dem Befehl pwd (steht für print working directory) herausfinden. Dieser Befehl ist fest in der Bash eingebaut und muss nicht noch einmal installiert werden.
Jetzt habe ich zwar eine schöne Ausgabe in der Kommandozeile, aber wenn ich das generell als Diagramm sehen möchte, dann habe ich mir ein Python-Script gebastelt.
Farbige und visuelle Ausgabe von der CPU-Leistung
In den meisten Linux-Distributionen ist Python von Anfang installiert und muss nur in eigenen selbst kompilierten Systemen nach installieren.
Für das Script braucht man noch einige zusätzliche Bibliotheken, die man nach getaner Python-Installation noch zusätzlich mit dem Befehl pip installieren muss, wenn nicht schon vorhanden.
Die folgenden Bibliotheken müssen installiert werden:
- Seaborn
- Pandas
- Matplotlib
Anschließend schreibt man den folgenden Code nun in einen Editor seiner Wahl (und kein MS Word oder keine andere Textverarbeitung) wie Notepad hin und speichert das als .py Datei. Das ist die Endung einer Python-Datei.
Ich selber benutze das Juypter Lab, eine spezielle Programmierumgebung für Python und einer anderen Programmiersprache (die man Julia nennt).
Das Script mit dem Befehl sysstat
import subprocess
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import datetime
from pathlib import Path
eingabe_name = input("Den Dateinamen eingeben (optional): ").strip()
zeitstempel = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
if eingabe_name:
dateinamen = f"{zeitstempel}_{eingabe_name}"
else:
dateinamen = f"cpu_auslastung_{zeitstempel}"
# sar ausführen
try:
result = subprocess.run(["sar", "-u", "2", "7"], capture_output=True, text=True, check=True)
except (subprocess.SubprocessError, FileNotFoundError):
print("Fehler: 'sar' konnte nicht ausgeführt werden. Ist sysstat installiert?")
exit(1)
zeiten = []
user_werte = []
# Zeilen durchgehen und parsen
for line in lines:
parts = line.split()
# Wir filtern Zeilen heraus, die mit einer Uhrzeit beginnen (enthalten ":")
# und sich auf "all" beziehen.
if len(parts) >= 3 and ":" in parts[0] and parts[1] == "all":
zeit = parts[0]
# Deutsches Komma (z.B. "8,11") in float-kompatiblen Punkt ("8.11") umwandeln
user_val = float(parts[2].replace(',', '.'))
zeiten.append(zeit)
user_werte.append(user_val)
# In ein Pandas-DataFrame überführen (ideal für Seaborn)
df = pd.DataFrame({
"Zeit": zeiten,
"Auslastung": user_werte
})
#print(df) # Zum Kontrollieren in der Konsole
# Visualisierung mit Seaborn
sns.set_theme(style="whitegrid")
plt.figure(figsize=(10, 5))
# Ein Lineplot oder Barplot auf Basis des DataFrames
sns.lineplot(data=df, x="Zeit", y="Auslastung", marker='*', color='b', linewidth=2, markersize=10)
plt.title(f"CPU-Auslastung (%user) im Zeitverlauf vom {datumeinfuegen}", fontsize=14)
plt.xlabel("Uhrzeit", fontsize=12)
plt.ylabel("%user", fontsize=12)
plt.xticks(rotation=0)
plt.tight_layout()
# Statistiken berechnen
avg_last = df["Auslastung"].mean()
max_last = df["Auslastung"].max()
print(f"--- Messung beendet ---")
print(f"Durchschnittliche Auslastung: {avg_last:.2f}%")
print(f"Maximale Auslastung: {max_last:.2f}%")
print(f"Gespeichert unter: {Path.cwd()} / {dateinamen}.png")
plt.savefig(f"{dateinamen}.png", dpi=300)
plt.show()
Die Ausgabe als Bilddatei des Befehls sysstat

FAQ
Was ist sysstat?
Sysstat ist ein kleines Programm, welches unter Linux die CPU-Auslastung farbig anzeigt.
In welcher Paketquelle (Repository) befindet sich das Programm in AlmaLinux?
Es befindet sich im Repository @System
Welche Lizenz hat das Programm?
Das Programm hat die GPLv2+ Lizenz
Wie groß ist das Programm?
Sysstat ist 1,6 Megabyte groß.