HOWTO · Python

CPU-Auslastung in Python abrufen

Dieses Tutorial zeigt, wie Sie die aktuelle CPU-Auslastung eines Betriebssystems in Python ermitteln. Lernen Sie verschiedene Methoden kennen, darunter die Verwendung der Bibliothek psutil und die Ausführung von Shell-Befehlen, um die CPU-Leistung effektiv zu überwachen. Entdecken Sie praktische Codebeispiele und ausführliche Erklärungen, um Ihre Python-Kenntnisse zu verbessern und die Systemleistung zu optimieren.

Auf dieser Seite

Im heutigen digitalen Zeitalter ist das Verständnis der Systemleistung für Entwickler und Systemadministratoren gleichermaßen entscheidend. Eine der Kennzahlen, die dabei besonders im Blick stehen, ist die CPU-Auslastung. Ob Sie eine Python-Anwendung optimieren oder den Zustand eines Systems überwachen – zu wissen, wie man die CPU-Auslastung abruft, kann von unschätzbarem Wert sein.

Dieses Tutorial führt Sie durch mehrere Methoden, um die aktuelle CPU-Auslastung eines Betriebssystems mit Python zu ermitteln. Am Ende dieses Artikels werden Sie sicher wissen, wie Sie diese Techniken effektiv umsetzen, um die CPU-Leistung in Echtzeit zu überwachen. Legen wir los!

Methode 1: Die Bibliothek psutil verwenden

Eine der beliebtesten Methoden, um die CPU-Auslastung in Python zu ermitteln, ist die Verwendung der Bibliothek psutil. Diese Bibliothek ist ein leistungsstarkes Werkzeug, das eine Schnittstelle zum Abrufen von Informationen über die Systemauslastung bereitstellt, darunter CPU, Arbeitsspeicher, Festplatten und Netzwerk. Zunächst müssen Sie psutil installieren. Das geht mit pip:

pip install psutil

Nach der Installation können Sie mit dem folgenden Code die CPU-Auslastung abrufen:

import psutil

cpu_usage = psutil.cpu_percent(interval=1)
print(f"Current CPU Usage: {cpu_usage}%")

Ausgabe:

Current CPU Usage: 15.0%

Dieser Codeausschnitt importiert die Bibliothek psutil und ruft die Methode cpu_percent auf. Der Parameter interval gibt die Zeit in Sekunden an, die gewartet wird, bevor die CPU-Auslastung berechnet wird. In diesem Fall wartet er eine Sekunde, bevor er den Prozentsatz der genutzten CPU zurückgibt. Diese Methode ist unkompliziert und liefert Echtzeitdaten, was sie zu einer ausgezeichneten Wahl für die Leistungsüberwachung macht.

Methode 2: Die Bibliothek os verwenden

Eine weitere Möglichkeit, die CPU-Auslastung in Python zu ermitteln, ist die Verwendung der integrierten Bibliothek os. Sie ist zwar nicht so umfassend wie psutil, kann aber dennoch grundlegende Informationen über die CPU-Auslastung liefern. So geht es:

import os

cpu_usage = os.popen("wmic cpu get loadpercentage").read()
print(f"Current CPU Usage: {cpu_usage.strip()}")

Ausgabe:

Current CPU Usage: 15

In diesem Code verwenden wir die Funktion os.popen(), um einen Shell-Befehl auszuführen, der den Prozentsatz der CPU-Last auf Windows-Systemen abruft. Der Befehl wmic cpu get loadpercentage holt die aktuelle CPU-Last. Die Methode read() erfasst die Ausgabe, die dann ausgegeben wird. Beachten Sie, dass diese Methode plattformabhängig ist und hauptsächlich unter Windows funktioniert. Wenn Sie ein Unix-ähnliches System verwenden, sollten Sie möglicherweise einen anderen Befehl verwenden.

Methode 3: Das Modul subprocess verwenden

Wenn Sie mehr Kontrolle über die Ausführung von Shell-Befehlen und das Erfassen ihrer Ausgabe wünschen, ist das Modul subprocess eine ausgezeichnete Wahl. Diese Methode kann auf verschiedenen Betriebssystemen eingesetzt werden und ist dadurch vielseitig. So ermitteln Sie die CPU-Auslastung mit subprocess:

import subprocess

cpu_usage = subprocess.check_output("top -bn1 | grep 'Cpu(s)'", shell=True).decode('utf-8')
print(f"Current CPU Usage: {cpu_usage.split()[1]}")

Ausgabe:

Current CPU Usage: 15.0

In diesem Beispiel verwenden wir subprocess.check_output(), um den Befehl top auszuführen, der eine dynamische Echtzeitansicht der Systemprozesse liefert. Die Flags -bn1 weisen den Befehl an, im Batch-Modus zu laufen und nur einmal auszugeben. Anschließend suchen wir nach der Zeile, die ‘Cpu(s)’ enthält, und dekodieren die Ausgabe in ein String-Format. Schließlich teilen wir den String auf, um den Prozentsatz der CPU-Auslastung zu extrahieren. Diese Methode ist leistungsstark und flexibel, da Sie den Befehl nach Bedarf anpassen können.

Methode 4: Das Modul platform verwenden

Wenn Sie eine Methode wünschen, die nahtlos auf verschiedenen Plattformen funktioniert, kann das Modul platform mit anderen Methoden kombiniert werden, um die Kompatibilität sicherzustellen. So ermitteln Sie die CPU-Auslastung auf Grundlage des Betriebssystems:

import platform
import psutil

if platform.system() == "Windows":
    cpu_usage = psutil.cpu_percent(interval=1)
elif platform.system() == "Linux":
    cpu_usage = psutil.cpu_percent(interval=1)
else:
    cpu_usage = "Unsupported OS"

print(f"Current CPU Usage: {cpu_usage}")

Ausgabe:

Current CPU Usage: 15.0%

In diesem Code prüfen wir zunächst das Betriebssystem mit platform.system(). Je nachdem, ob es sich um Windows oder Linux handelt, rufen wir psutil.cpu_percent() auf, um die CPU-Auslastung zu ermitteln. Wird das Betriebssystem nicht unterstützt, geben wir eine entsprechende Meldung zurück. Diese Methode ist besonders nützlich in Anwendungen, die in verschiedenen Umgebungen laufen müssen, da sie sicherstellt, dass je nach Betriebssystem die richtige Methode angewendet wird.

Fazit

In diesem Artikel haben wir verschiedene Methoden untersucht, um die aktuelle CPU-Auslastung in Python zu ermitteln. Von der Verwendung der Bibliothek psutil bis zur Ausführung von Shell-Befehlen mit os und subprocess hat jede Methode ihre Stärken und Anwendungsfälle. Je nach Ihren spezifischen Anforderungen können Sie die Methode wählen, die am besten zu Ihren Bedürfnissen passt. Die Überwachung der CPU-Auslastung ist unerlässlich, um die Leistung zu optimieren und sicherzustellen, dass Ihre Anwendungen reibungslos laufen. Mit diesen Techniken können Sie nun die CPU-Leistung in Ihren Python-Projekten effektiv verfolgen.

FAQ

  1. Welches ist die beste Bibliothek, um die CPU-Auslastung in Python zu überwachen?
    Die Bibliothek psutil gilt aufgrund ihrer umfassenden Funktionen und ihrer einfachen Handhabung allgemein als die beste Option.

  2. Kann ich die CPU-Auslastung mit Python auf jedem Betriebssystem abrufen?
    Ja, mithilfe plattformspezifischer Befehle oder Bibliotheken wie psutil können Sie die CPU-Auslastung auf verschiedenen Betriebssystemen abrufen.

  3. Sind die Informationen zur CPU-Auslastung in Echtzeit?
    Ja, Methoden wie psutil.cpu_percent(interval=1) liefern Echtzeitdaten zur CPU-Auslastung.

  4. Wie installiere ich die Bibliothek psutil?
    Sie können psutil mit pip über den Befehl pip install psutil installieren.

  5. Kann ich die CPU-Auslastung kontinuierlich überwachen?
    Ja, Sie können in Ihrem Python-Skript eine Schleife einrichten, um die CPU-Auslastung in festgelegten Intervallen kontinuierlich zu überwachen.