So lassen sich mit dem nice-Befehl Prozessprioritäten festlegen

Normalerweise benutzt nur eine Person ein Desktopsystem, auf dem eine beliebige Zahl von Applikationen ausgeführt wird. Ebenso häufig kann es aber auch vorkommen, dass eine große Zahl von Benutzern auf einem Server verschiedene Anwendungen gleichzeitig verwendet.

Wie viel Rechnerzeit einzelnen Tasks zur Verfügung steht, hängt in hohem Maße davon ab, wie arbeitsaufwändig ihre Ausführung ist. Manche Tasks erfordern eine höhere Priorität als andere. Kompiliert man etwa ein großes Softwarepaket, das aber nicht dringend benötigt wird, sollte die Priorität dafür niedriger sein als die des Webbrowsers oder des E-Mail-Clients.

Mit jedem Prozess ist unter Linux ein nice-Wert verknüpft, mit dem der Kernel bestimmt, welche Prozesse mehr Rechnerzeit einfordern als andere. Je höher dieser nice-Wert ausfällt, desto niedriger ist die Dringlichkeitsstufe des Prozesses. Mit anderen Worten, je höher der nice-Wert der Anwendung liegt, desto weniger CPU-Zeit beansprucht sie. Programme mit einem niedrigeren nice-Wert verlangen entsprechend mehr CPU-Zeit.

Die Priorität wird in einem Bereich von -20 (höchste) bis 20 (niedrigste) angegeben. Mit dem Befehl ps lässt sich der aktuelle nice-Wert aller Programme anzeigen:

Hier hat init einen nice-Wert von 0, während andere Kernel-Tasks, die mit PID 2 und 3 verbunden sind, einen nice-Wert von 19 beziehungsweise -5 aufweisen.

Normalerweise erbt ein Programm seinen nice-Wert vom Mutterprozess. Dadurch wird verhindert, dass niedrig eingestufte Prozesse untergeordnete Tasks mit hoher Priorität erzeugen. Der Befehl nice (via Root oder mittels sudo) lässt sich zusammen mit dem Befehl verwenden, den man ausführen möchte, um dessen nice-Wert zu modifizieren. Hier eine kurze Illustration:

Der veränderte nice-Wert ist in Spalte 6 ablesbar. Man kann aber auch den Befehl renice verwenden, um laufende Prozesse zu modifizieren. Im folgenden Beispiel wurde vim gestartet, um die Datei foo zu bearbeiten. Der Standard-Nice-Wert ist 0. Mittels renice lässt sich seine Priorität ändern:

renice arbeitet mit der Prozess-ID. Mittels grep lässt sich ablesen, dass vim die Prozess-ID 30832 und den Nice-Wert 0 hat. Nach Ausführung von renice liegt der nice-Wert jetzt bei -5. Die Priorität von vim wurde also geringfügig höher gestuft.

Im Übrigen gelten folgende Hinweise: Nur Root kann die nice-Priorität von Programmen verändern. Stellt man also fest, dass das Kompilieren anderen Aktivitäten zu viel CPU-Zeit wegnimmt, kann der Mutterprozess via Root mittels renice modifiziert werden. Nachfolgende Prozesse sollten dann einen höheren nice-Wert haben.

Kompilieren und andere Aktivitäten lassen sich aber auch mit nice starten, um dann einen nice-Wert festzulegen. Mittels renice kann außerdem die Priorität sämtlicher Programme, die zu einer Prozessgruppe oder einem Benutzernamen beziehungsweise einer Benutzer-ID gehören, justiert werden.

ZDNet.de Redaktion

Recent Posts

Studie: Ein Drittel aller E-Mails an Unternehmen sind unerwünscht

Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…

3 Tagen ago

HubPhish: Phishing-Kampagne zielt auf europäische Unternehmen

Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…

3 Tagen ago

1. Januar 2025: Umstieg auf E-Rechnung im B2B-Geschäftsverkehr

Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.

4 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…

4 Tagen ago

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

4 Tagen ago

Hacker missbrauchen Google Calendar zum Angriff auf Postfächer

Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…

5 Tagen ago