Wie man die CPU-Nutzung eines beliebigen Prozesses in Linux begrenzt
Haben Sie schon einmal erlebt, dass Sie eine bestimmte Anwendung (z. B. Firefox) öffnen und das ganze System zum Stillstand bringt? Wenn Sie einen Webserver betreiben, ist das Letzte, was Sie sehen wollen, eine Anwendung zu haben, die das gesamte System zum Absturz bringt und alle Websites zum Absturz bringt.
Cpulimit ist eine Anwendung für Linux, die die CPU-Auslastung eines Prozesses begrenzen kann. Dies ist nützlich, wenn Sie verhindern möchten, dass eine bestimmte Anwendung zu viel CPU-Ressourcen beansprucht und dadurch das System abstürzt. Dies kann auch nützlich sein, wenn Sie mehrere Intensivprogramme gleichzeitig ausführen müssen.
Hinweis : Cpulimit sollte für alle Linux-Distributionen funktionieren. In diesem Tutorial werden wir Ubuntu zur Veranschaulichung verwenden.
Installation
In Ubuntu können Sie cpulimit über das Ubuntu Software Center installieren, klicken Sie hier, um zu installieren, oder geben Sie den folgenden Befehl im Terminal ein:
sudo apt-get installieren cpulimit
Verwendung
Um einen Prozess einzuschränken, verwenden Sie den Befehl
sudo cpulimit -p PID -l CPU%
Die PID ist die Prozess-ID der laufenden Anwendung und CPU% ist der Prozentsatz (0-100, nur Zahl) der CPU-Ressourcen, die für die App zulässig sind. Sie können die PID über System -> Administration -> System Monitor erhalten .
Aus dem obigen Screenshot sieht man, dass die Swiftfox-Anwendung (eine Variante von Firefox) 68% der CPU-Ressourcen belegt, bevor das CPU-Limit gesetzt wird. Mal sehen, was passiert, wenn wir die CPU-Auslastung auf 20% begrenzen.
Die% CPU fiel sofort unter 20% und überschritt nie wieder die 20% -Marke.
Erweiterung von cpulimit - Automatisierung des gesamten Prozesses
Cpulimit ist nützlich, wenn Sie auf eine Anwendung stoßen, die viel CPU-Ressourcen beansprucht oder einen Batch-Job ausführen muss. Darüber hinaus können Sie es auch so einrichten, dass das System auf fehlerhafte Anwendungen überwacht wird. Dies ist besonders nützlich bei einer Serverkonfiguration.
Das Ubuntu Forum hat ein großartiges Skript entwickelt, das die Überwachung Ihres Systems automatisiert und jeden Prozess einschränkt, der ein voreingestelltes CPU-Limit überschreitet. Das Skript ermöglicht Ihnen auch, Blacklist / Whitelist für bestimmte Anwendungen zu setzen.
Bevor wir anfangen, stellen Sie sicher, dass Sie cpulimit und gawk installiert haben.
sudo apt-get installieren cpulimit gawk
Laden Sie die Skripte hier herunter. Extrahieren Sie die TAR-Datei in Ihren Home-Ordner. Sie sollten zwei Dateien im cpulimit-Ordner haben: cpulimit_daemon.sh und cpulimit .
Öffnen Sie die Datei cpulimit_daemon.sh in Ihrem Texteditor (gEdit) und ändern Sie Folgendes:
CPU_LIMIT : Dies sind die maximalen CPU-Ressourcen, die für jede Anwendung verfügbar sind. Der Standardwert ist 20%.
DAEMON_INTERVAL : Dies ist das Intervall, in dem das Skript das System überprüft. Der Standardwert ist auf 3 Sekunden festgelegt.
BLACK_PROCESS_LIST : Enthält die Liste der Elemente, die speziell überwacht werden sollen. Sie können das Begrenzungszeichen "|" verwenden, um mehrere Prozesse einzubeziehen. Zum Beispiel " mysql|firefox|gedit
".
WHITE_PROCESSES_LIST : Enthält die Liste der Elemente, die NICHT überwacht werden sollen. Sie können das Begrenzungszeichen "|" verwenden, um mehrere Prozesse einzubeziehen. Zum Beispiel " mysql|firefox|gedit
".
Hinweis : Eine oder beide Variablen BLACK_PROCESSES_LIST und WHITE_PROCESSES_LIST müssen leer sein. Sie können keine Blacklist und keine Whitelist gleichzeitig haben.
Einrichten
Kopieren Sie die Datei cpulimit_daemon.sh in den Ordner / usr / bin /
sudo cp ~ / cpulimit / cpulimit_daemon.sh / usr / bin sudo chmod 700 /usr/bin/cpulimit_daemon.sh
Kopiere die cpulimit- Datei nach /etc/init.d/folder, setze die notwendige Erlaubnis und lasse sie während des Statups laufen.
sudo cp ~ / cpulimit / cpulimit /etc/init.d/ sudo chown root: root /etc/init.d/cpulimit sudo chmod + x / etc / init.d / cpulimit sudo update-rc.d cpulimit defaults
Starten Sie jetzt Ihr System neu. Der cpulimit-Daemon sollte automatisch starten.
Sie können ein Terminal öffnen und Folgendes eingeben:
sudo service cpulimit status
um zu überprüfen, ob der cpulimit-Daemon läuft. Wenn es nicht läuft, starten Sie es mit dem Befehl
sudo service cpulimit starten
Alternativ, stoppen Sie es mit:
sudo service cpulimit stop
Deinstallieren
Um zu deinstallieren, müssen Sie Folgendes tun:
1. Stoppen Sie den cpulimit-Daemon
sudo service cpulimit stop # Stoppen Sie den cpulimit-Daemon und alle c-pulimited-Prozesse
2. Entfernen Sie den Daemon vom Startvorgang
sudo update-rc.d -f cpulimit entfernen # Entferne symbolische Links
3. Löschen Sie den Startvorgang
sudo rm /etc/init.d/cpulimit # Löschen Sie das Skript cpulimit boot-up
4. Löschen Sie den cpulimit-Daemon
sudo rm /usr/bin/cpulimit_daemon.sh # Löschen des cpulimit-Daemon-Skripts
5. Deinstallieren Sie das Programm cpulimit
sudo apt-get entfernt cpulimit
Optional, dein Programm gawk deinstallieren
sudo apt-get remove gawk
Weitere Informationen finden Sie im Ubuntu-Forum für weitere Details.
Code Kredit: abcuser von Ubuntu Forum