CPULimit begrenzt die Verwendung der CPU durch einen Prozess

über CPULimit

Im nächsten Artikel werden wir uns CPULimit ansehen. Dies ist ein Befehlszeilenprogramm, das begrenzt die CPU-Auslastung durch einen Prozess (ausgedrückt in Prozent, nicht in CPU-Zeit). Dies ist nützlich für die Steuerung von Stapeljobs, wenn ein Prozess nicht zu viele CPU-Zyklen verbrauchen soll.

Mit diesem Tool werden wir nicht den Wert oder andere Prioritätseinstellungen ändern, sondern die tatsächliche Nutzung der CPU. Darüber hinaus kann es sich dynamisch und schnell an die allgemeine Auslastung des Systems anpassen. Die Steuerung der verwendeten CPU-Menge erfolgt durch Senden señales NÄCHSTE STATION y WEITERFORTS POSIX zu Prozessen. Alle untergeordneten Prozesse und Threads des angegebenen Prozesses haben denselben CPU-Prozentsatz.

Installieren Sie CPULimit

CPULimit ist verfügbar in den meisten Standard-Repositorys von Unix-ähnlichen Distributionen. Wir können es mit den Standard-Paketmanagern in der jeweiligen Gnu / Linux-Distribution installieren. Im vorliegenden Beispiel sehen wir, wie es unter Debian, Ubuntu und Linux Mint installiert wird. Wir müssen nur ein Terminal öffnen (Strg + Alt + T) und den folgenden Befehl darin schreiben:

sudo apt-get install cpulimit

Wer möchte, kann andere Arten von Einrichtungen in der konsultieren Projekt GitHub Seite.

Verwenden von CPULimit

Sobald das Tool installiert ist, ist es Zeit zu sehen, wie es funktioniert. Dazu führen wir ein Programm aus, das viele CPU-Ressourcen verbraucht. Die folgenden Befehle müssen als Root-Benutzer ausgeführt werden.

Erstellen eines Skripts, das CPU-Ressourcen verbraucht

Zuerst gehen wir zu Erstellen Sie eine Datei mit dem Namen derrochecpu.sh. Ich werde das benutzen Vim-Editor, aber dass jeder den verwendet, den er bevorzugt. Vom Terminal (Strg + Alt + T) müssen wir schreiben:

vim derrochecpu.sh

Sobald es geöffnet ist, drücken wir die Taste 'Esc' und dann 'i'. Jetzt werden wir die folgenden Zeilen hinzufügen:

vim script splurgecpu

#!/bin/bash
while :; do :; done;

Nachdem dies erledigt ist, ist es Zeit zu speichern und zu beenden. Dazu drücken wir die Taste 'Esc'und wir werden schreiben : Wq um die Datei zu speichern und zu schließen. Dieses kurze Skript wird nahtlos wiederholt und verbraucht die maximale CPU-Auslastung. Daher wird empfohlen, es in einer virtuellen Maschine zu testen.

Jetzt werden wir diese Datei ausführbar machen. Dazu führen wir vom selben Terminal (Strg + Alt + T) Folgendes aus:

chmod +x derrochecpu.sh

Starten des Skripts

Jetzt starten wir den Prozess im Hintergrund. Wir werden dies mit dem Befehl tun:

./derrochecpu.sh &

PID-Skript splurgeCPU

Wir werden die PID des Prozesses beibehalten. In diesem Fall ist 6472 die PID des gestarteten Prozesses.

Überprüfen, wie viel CPU verbraucht wird

Wir können die Menge an CPU sehen, die der gerade gestartete Prozess verbraucht, indem wir die verwenden Befehl «top» im selben Terminal:

Top-Skript splurgeCPU

top

Wie im obigen Screenshot zu sehen ist, verbraucht der Prozess verschwenderisch.p mehr als 96% der CPU-Auslastung. Da es viel CPU-Auslastung verbraucht, ist es schwierig, andere Aufgaben auszuführen. Nach ein paar Minuten, Das System könnte abstürzen oder einfrieren. Hier hilft uns CPULimt.

Begrenzung der CPU-Auslastung durch PID

Lassen Sie uns nun die CPU-Auslastung dieses Prozesses mithilfe des CPULimit-Tools begrenzen. Wir gehen zu Begrenzen Sie die CPU-Auslastung anhand der entsprechenden PID auf 35% (CA). Führen Sie dazu Folgendes aus:

cpulimit -l 35 -p 6472 &
  • Die Option "- l 35»Begrenzt den Prozess auf ca. 35%.
  • «-p 6472»Ist die PID von derrochecpu.sh, die wir zuvor gesehen haben.

Überprüfen der Wirkung von CPULimit

Nachdem der vorherige Befehl gestartet wurde, überprüfen wir erneut die CPU-Auslastung des Prozesses. Dazu verwenden wir wieder den Befehl top:

Top-Skript CPULimit Verschwender

top

Wie Sie dem obigen Bild entnehmen können, ist die CPU-Auslastung von wasfulcpu.sh auf 35,6% gesunken, was sehr nahe an 35% liegt. Nun ja Wir können mehr CPU-Ressourcen haben, um andere Prozesse auszuführen.

Begrenzung der CPU-Auslastung durch Dateinamen

Wir haben gesehen, wie ein Prozess mithilfe der PID begrenzt werden kann. Auch Wir können den Befehl CPULimit ausführen und den Namen der ausführbaren Programmdatei angeben.

Zum Beispiel wäre das gleiche Beispiel oben:

cpulimit -l 30 ./derrochecpu.sh &

CPULimit kann nützlich sein, wenn ein Prozess ausgeführt wird, der zu viel CPU-Auslastung verbraucht. Wenn wir das nächste Mal feststellen, dass ein Programm zu viel CPU verbraucht, müssen wir einfach die PID des Prozesses mit dem Befehl «ermitteln.Top«. Wenn Sie es haben, müssen Sie nur Ihre CPU-Auslastung mit dem Befehl CPULimit auf einen Mindestwert beschränken, wie in diesem Artikel beschrieben.

Deinstallieren Sie CPULimit

Das Entfernen dieses Tools aus unserem System ist so einfach wie das Öffnen eines Terminals (Strg + Alt + T) und das Eingeben:

sudo apt remove cpulimit

Was dieser Artikel beschrieben hat Es ist nur ein Beispiel. Offensichtlich wird niemand, der bei klarem Verstand ist, ein Skript wie das hier beschriebene auf seinem eigenen Computer starten.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   javp sagte

    Hola:
    Es ist perfekt für einen alten PC mit einem amd64 x2, der anscheinend ein Kühlproblem hat. Wenn ein Prozess mehrere Minuten lang viel CPU verbraucht, erwärmt er sich auf 100 ° C und fährt herunter.
    Wenn ich also sehe, dass ein Prozess (im Allgemeinen einige Websites oder Video-Rendering-Programme) mich dazu bringt, die Temperatur der CPU zu erhöhen, werde ich cpulimit verwenden, um "Strom" aus diesem Prozess zu entfernen.
    dank