So begrenzen Sie die CPU-Auslastung eines Prozesses unter Linux mit cpulimit

Wenn Sie auf einem Linux-System arbeiten, laufen zahlreiche Prozesse im Hintergrund. Diese Prozesse beanspruchen Systemressourcen in Form von CPU-Auslastung und Zeit.

Während in den meisten Situationen das Betriebssystem diese Prozesse automatisch verwaltet, kann ein ressourcenintensiver Prozess die CPU manchmal aufgrund von starker Verarbeitung oder schlechter Entwicklung überlasten. Die Antwort besteht normalerweise darin, den Prozess direkt zu beenden oder seine CPU-Auslastung auf ein bestimmtes Limit zu beschränken.

Glücklicherweise können Sie unter Linux die CPU-Auslastung eines Prozesses mit einem Befehlszeilendienstprogramm namens cpulimit begrenzen .

So identifizieren Sie einen Prozess mit hoher CPU-Auslastung

Bevor Sie den Prozentsatz der Systemressourcen begrenzen können, die ein Prozess verwenden kann, müssen Sie die Prozess-ID dieses bestimmten Prozesses ermitteln. Eine Prozess-ID (oder PID) ist eine eindeutige Nummer, die Ihr System verwendet, um einen Prozess zu identifizieren.

Unter Linux gibt es mehrere Möglichkeiten, detaillierte Informationen zu Prozessen abzurufen. Sie können den Befehl top verwenden , um eine Liste der Prozesse abzurufen, die derzeit auf Ihrem System ausgeführt werden.

 top

Ausgabe:

Die Spalte %CPU zeigt den Prozentsatz der CPU an, die der jeweilige Prozess verwendet. Wenn Ihr Computer versucht, mehr Daten zu verarbeiten, als er kann, hat ein bestimmter Prozess eine CPU-Auslastung von 100 %. Sehen Sie in der Tabelle nach, ob es einen Prozess mit hoher CPU-Auslastung gibt.

Sobald Sie den Prozess mit hoher CPU-Auslastung gefunden haben, notieren Sie seine PID. Die Prozess-ID ist wichtig, um die Nutzung des Prozesses einzuschränken.

Begrenzen Sie die CPU-Auslastung mit cpulimit

Wie oben erwähnt, ist cpulimit ein Befehlszeilenprogramm, das die Menge der von einem bestimmten Prozess auf Ihrem Computer verwendeten Systemressourcen begrenzt. Da die meisten Linux-Distributionen nicht mit vorinstalliertem cpulimit ausgeliefert werden, müssen Sie es manuell installieren.

Sie können das Paket auf Ubuntu und anderen Debian-basierten Distributionen wie folgt installieren:

 sudo apt install cpulimit

Auf Arch-basierten Distributionen wie Manjaro Linux:

 sudo pacman -S cpulimit

Cpulimit ist im EPEL-Repository (Extra Packages for Enterprise Linux) verfügbar. Um es auf CentOS- und RHEL-Distributionen zu installieren, müssen Sie daher zuerst das EPEL-Repository aktivieren.

 yum install epel-release
yum install cpulimit

Grundsyntax

Um cpulimit zu verwenden, müssen Sie eines der folgenden drei Argumente mit dem Befehl übergeben:

  1. -p oder –pid : Die Prozess-ID eines Prozesses
  2. -e oder –exe : Der Name der ausführbaren Datei
  3. -p oder –path : Absoluter Pfad der ausführbaren Datei

Die grundlegende Syntax des Befehls lautet:

 cpulimit -p pid
cpulimit -e executablename
cpulimit -p /path-to-executable

Begrenzen Sie die CPU-Auslastung eines Prozesses

Sie können das Flag –limit oder -l des Dienstprogramms cpulimit verwenden, um den Ressourcen, die ein Prozess verwenden kann, ein Limit hinzuzufügen. So erzwingen Sie, dass ein Prozess mit PID 81550 nur 50 % der CPU verwendet:

 sudo cpulimit -p 81550 --limit 50

Hier schränkt cpulimit die CPU-Auslastung des Prozesses ein, solange er läuft. Wenn Sie die Ausführung von cpulimit stoppen, wird die CPU-Auslastung dieses bestimmten Prozesses wieder normal.

Eine großartige Lösung, um dieses Problem zu vermeiden, besteht darin, cpulimit im Hintergrund auszuführen. Sie können dem Befehl das Flag –background oder -b hinzufügen, um den Befehl in den Hintergrund zu senden .

 sudo cpulimit -p 81550 --limit 50 --background

Wenn die Option –background nicht funktioniert, können Sie nach dem Befehl ein Ampersand ( & ) hinzufügen, um es in den Hintergrund zu senden.

 sudo cpulimit -p 81550 --limit 50 &

Verwenden Sie den oberen Befehl, um zu überprüfen, ob der oben genannte Befehl funktioniert.

Wie Sie vielleicht bemerkt haben, ist die CPU-Auslastung des Befehls dd auf 48,8% gesunken.

Beenden eines Prozesses mit seiner PID

Anstatt die CPU-Auslastung einzuschränken, können Sie den Prozess vollständig beenden, indem Sie ihn mit dem Flag –kill beenden .

 sudo cpulimit -p 81550 --limit 50 --kill

Intelligenteres Prozessmanagement unter Linux

Cpulimit ist ein großartiges Dienstprogramm, wenn Sie häufig auf Prozesse mit hoher CPU-Auslastung stoßen. GNOME-Benutzer, die mit der Befehlszeile nicht vertraut sind, können auch den Systemmonitor verwenden, um Prozesse auf ihrem System zu verwalten .

Neben der Verwendung von Tools wie cpulimit können Sie unter Linux auch die Priorität senken, um einem bestimmten Prozess weniger Ressourcen zur Verfügung zu stellen. Die Befehle nice und renice sind ein Lebensretter, wenn es um die Verwaltung der Prozesspriorität in Linux geht.