Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Mit Hilfe des CPU Usage Limiter for Linux kann man die maximale prozentuale CPU-Zeit, die ein Prozess verbrauchen darf, begrenzen. Damit unterscheidet sich das Programm von den Befehlen nice bzw. renice, die stattdessen die Priorität eines Prozesses festlegen oder verändern.
Erfolgreich getestet wurde das Programm in verschiedenen Ausnahmesituationen, z.B. wenn ein Notebook während der Installation von Ubuntu überhitzt und in Folge einfach abschaltet (siehe Diskussion).
Das Programm kann direkt aus den Paketquellen installiert [1] werden:
cpulimit (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install cpulimit
sudo aptitude install cpulimit
Die allgemeine Syntax lautet [3]:
cpulimit ZIEL OPTIONEN &
Wenn man nicht nur eigene Prozesse limitieren will, muss man das Programm mit sudo cpulimit ...
starten.
ZIEL
ist dabei der Prozess/das Programm, was begrenzt werden soll. Der optionale Parameter &
veranlasst das Programm, dauerhaft im Hintergrund zu arbeiten (ansonsten beendet man es mit
Strg +
C ). Folgende Ziele sind möglich:
Ziele | |
Syntax | Beschreibung |
-p N , --pid=N | PID eines Prozesses |
-e DATEI , --exe=DATEI | Name einer ausführbaren Datei |
-P PFAD , --path=PFAD | absoluter Pfad zu einer ausführbaren Datei |
Folgende Optionen sind möglich:
Optionen | |
Syntax | Beschreibung |
-l N , --limit=N | maximal erlaubte CPU-Zeit in Prozent (muss immer angegeben werden!) |
-v , --verbose | zeigt statistische Informationen an |
-z , --lazy | beendet cpulimit, wenn es keinen entsprechenden Prozess gibt oder dieser beendet wird |
-h , --help | zeigt einen Hilfstext an |
Angenommen, ein Prozess bzw. Programm namens "foo
" wurde gestartet und erzeugt eine CPU-Auslastung von 100%. Mit folgendem Befehl kann die maximale CPU-Zeit auf 50% begrenzt werden:
cpulimit -e foo -l 50
Mit folgendem Befehl kann die maximale CPU-Zeit, die /usr/bin/foo verbraucht, auf 30% begrenzt werden:
cpulimit -P /usr/bin/foo -l 30
Mit folgendem Befehl kann die maximale CPU-Zeit, die der Prozess mit der PID "1234
" verbraucht, auf 20% begrenzt werden:
cpulimit -p 1234 -l 20
Bei Mehrkern-CPUs oder Rechnern mit mehreren Prozessoren ist die maximal mögliche prozentuale CPU-Zeit ein Vielfaches von 100% (bei einer Vier-Kern-CPU z.B 400%).
cpulimit begrenzt auch die maximale CPU-Zeit der Kindprozesse. D.h. die CPU-Zeit des Prozesses inklusive seiner Kindprozesse wird begrenzt. Allerdings ist diese Funktion noch experimentell und funktioniert ggf. nicht in allen Fällen korrekt.
HOWTO: Set maximum CPU consumption in percentage by any process - ein Dienst (Daemon bzw. Service) basierend auf cpulimit zur Kontrolle der maximalen CPU-Zeit aller Prozesse
schedutils - fortgeschrittene Befehle zur Prozesskontrolle
Diese Revision wurde am 21. Oktober 2012 14:25 von aasche erstellt.