Prioritäten
Linux verteilt CPU-Zeit nach Prioritäten. Prozesse mit höherer Priorität bekommen mehr Rechenzeit zugeteilt. Diese Priorität lässt sich beim Start eines Prozesses festlegen und während der Laufzeit anpassen.
Der Nice-Wert
Abschnitt betitelt „Der Nice-Wert“Die Priorität eines normalen Prozesses wird durch den Nice-Wert (niceness) ausgedrückt:
-20 ────────────────────────────────────── +19 │ │höchste Priorität niedrigste Priorität(wenig "nett" zu anderen) (sehr "nett" zu anderen)- Standardwert: 0
- Niedrigerer Nice-Wert = höhere Priorität = mehr CPU
- Höherer Nice-Wert = niedrigere Priorität = weniger CPU
Der Name kommt von der Idee: Ein Prozess mit hohem Nice-Wert ist “nett” zu anderen – er tritt ihnen bereitwillig CPU-Zeit ab.
ps -l # Nice-Wert in der NI-Spalte anzeigentop # NI-Spalte in der Prozesslistenice – Prozess mit Priorität starten
Abschnitt betitelt „nice – Prozess mit Priorität starten“nice befehl # mit Nice-Wert +10 starten (konservativer Standard)nice -n 10 befehl # explizit Nice-Wert +10nice -n 19 ./backup.sh # niedrigste Priorität – läuft im Hintergrund wegnice -n -10 ./zeitkritisch.sh # erhöhte Priorität (nur root!)Typischer Einsatz: ressourcenintensive Prozesse, die andere nicht stören sollen:
nice -n 15 tar -czf backup.tar.gz /home &nice -n 19 find / -name "*.log" > logdateien.txt &renice – Priorität laufender Prozesse ändern
Abschnitt betitelt „renice – Priorität laufender Prozesse ändern“renice ändert den Nice-Wert eines bereits laufenden Prozesses:
renice 10 -p 1034 # Prozess mit PID 1034 auf Nice +10 setzenrenice 19 -p 1034 1035 # mehrere PIDs auf einmalrenice 5 -u alice # alle Prozesse von alice auf +5 setzenrenice -5 -p 1034 # auf -5 erhöhen (nur root!)Praktisches Beispiel
Abschnitt betitelt „Praktisches Beispiel“Ein Backup-Skript läuft und verlangsamt das System:
pgrep backup.sh # PID herausfinden: 2847renice 19 -p 2847 # auf niedrigste Priorität setzenZusammenhang: Nice-Wert und Prozessanzeige
Abschnitt betitelt „Zusammenhang: Nice-Wert und Prozessanzeige“In top und ps -l erscheinen zwei Prioritätsspalten:
| Spalte | Bedeutung |
|---|---|
NI | Nice-Wert (-20 bis +19) |
PR | Kernel-interne Priorität (berechnet aus Nice-Wert) |
ps -l -p 1034# F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD# 0 S 1000 1034 892 0 80 0 - 5877 - pts/0 00:00:03 vim# ^^# NI = 0 (Standard)