ubuntuusers.deWikiShellnice

nice

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Mit Hilfe des Befehls nice können "normale" Befehle mit einer zu definierenden Prozesspriorität aufgerufen werden, mit Hilfe von renice kann die Priorität von laufenden Prozessen geändert werden.

Weitere Möglichkeiten erläutern folgende Artikel:

  • schedutils - fortgeschrittene Befehle zur Prozesskontrolle (chrt, taskset und ionice)

  • cpulimit - CPU-Leistung je Prozess einstellen

Installation

Die Programme sind in den essentiellen Paketen

  • coreutils (nice)

  • bsdutils (renice)

von Ubuntu enthalten und deshalb auf jedem System installiert.

Prozesspriorität

Unter Linux erhält jeder Prozess eine Priorität mit der bestimmt wird, wie viel anteilige Rechenleistung dem Prozess zusteht. Die Priorität liegt im Bereich von -20 bis +19 (in ganzzahligen Schritten), wobei -20 die höchste Priorität (=meiste Rechenleistung) und 19 die niedrigste Priorität (=geringste Rechenleistung) ist. Die Standardpriorität ist 0. Normale Nutzer können Prioritäten von 0 bis 19 einstellen, nur Root darf auch negative Werte vorgeben.

Hinweis:

Die Ausführungsgeschwindigkeit eines Befehls bzw. eines Programms kann zwar durch nice beeinflusst werden, hängt aber auch maßgeblich von anderen Faktoren ab wie z.B. der Gesamtzahl der laufenden Prozesse, Zugriffsgeschwindigkeit auf die Festplatte etc.

Hinweis:

Anders als häufig angemommen, sollte man einem rechen-intensivem Programm eher einen höheren nice-Wert geben, da dann andere Programme zwischen drin häufiger drankommen. So fühlt sich der PC flüssiger an.

nice

Syntax

nice wird wie andere Befehle auch in einem Terminal aufgerufen. Die allgemeine Syntax von nice ist recht einfach:

nice -n niceness Befehl 

Der Parameter niceness gibt dabei die Priorität an, "Befehl" ist ein regulärer Befehl bzw. Programmaufruf.

Beispiele

Ein paar Beispiele für die Nutzung von nice:

Im ersten Beispiel wird der Editor Nano mit der Priorität "3" gestartet:

nice -n 3 nano 

Im zweiten Beispiel wird der Editor Nano mit Root-Rechten und einer Priorität von "-6" gestartet:

sudo nice -n -6 nano 

Im dritten Beispiel wird der Editor Nano als Prozess des Users Hans und einer Priorität von "-9" gestartet:

sudo nice -n -9 sudo -u Hans nano 

Im vierten Beispiel wird der Editor Nano mit einer Priorität von "-12" für den aktuellen Nutzer gestartet:

sudo nice -n -12 sudo -u $USER nano 

Im fünften Beispiel wird der Editor Nano mit Root-Rechten und einer Priorität von "15" gestartet:

nice -n 15 sudo nano 

Hinweis:

Wie man am zweiten Beispiel sieht, wirkt sich der sudo-Befehl in diesem Fall auch auf den nachfolgenden Befehl (im Beispiel nano) aus. Da nice durch sudo mit Root-Rechten läuft "vererben" sich diese Rechte auch an den nachfolgen Befehl (im Beispiel nano), da dieser durch nice aufgerufen wird und nicht durch die Shell. Dies sollte man unbedingt beachten! Möchte man nur einen "normalen" Prozess ohne Root-Rechte aber mit einer höheren Priorität (also einem negativem nice-Wert) starten, ist das vierte Beispiel am geeignetsten.

Um die Priorität eines laufenden Prozesses zu ändern, wird der Befehl renice eingesetzt.

renice

Syntax

Die allgemeine Syntax von renice ist wie folgt:

renice niceness <Optionen> 

niceness gibt dabei die (neue) Priorität an. Grundsätzlich können normale Benutzer nur die Priorität ihrer eigenen Prozesse im Bereich 0 bis 19 ändern, mit Root-Rechten kann am die Priorität sowohl im Bereich -20 bis 19 sowie für die Prozesse aller Benutzer ändern, siehe auch Prozesspriorität.

renice wird im Terminal aufgerufen und kennt die folgenden Optionen:

renice - Optionen
OptionBeschreibung
-p PIDrenice wird auf den Prozess mit der Prozessidentifikationsnummer PID angewendet.
-u USERrenice wird auf alle Prozesse des Benutzers USER angewendet.
-g GRUPPEN-IDrenice wird auf alle Prozesse mit der Prozessgruppenidentifikation GRUPPEN-ID angewendet.

wird keine der Optionen (-p, -u, -g) angegeben, wird als Standard -p angenommen, die nachfolgenden Zahlen also als Prozessidentifikationsnummern (PID) interpretiert.

Um die Prozessidentifikationsnummer eines Prozesses zu bestimmen, können die Befehle pstree, ps oder pidof eingesetzt werden.

Beispiele

Im folgenden einige Beispiele für die Nutzung von renice.

Im ersten Beispiel wird die Priorität des Prozesses mit der PID 5678 auf "15" geändert:

renice 15 -p 5678 

Im zweiten Beispiel wird die Priorität aller derzeit laufenden Prozesse des Programms nano auf "-10" geändert:

sudo renice -10 `pidof nano` 

Im dritten Beispiel wird die Priorität aller Prozesse mit des Benutzers user auf "10" geändert:

renice 10 -u user 

Im vierten und letzten Beispiel wird die Priorität der Prozesse mit der PID 1234 und 5678, sowie für alle Prozesse von user auf "-10" geändert.

sudo renice -10 -p 1234 5678 -u user 

Diese Revision wurde am 3. Oktober 2011 um 00:42 Uhr von aasche erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Prozesse, Prozesspriorität, System, Shell

Passwort vergessen?