Linux kann Threads gleichzeitig auf verschiedenen CPU-Kernen ausführen und einen Kern zeitlich unter mehr ausführungsbereiten Threads aufteilen, als gleichzeitig laufen können. Der Scheduler trifft diese Entscheidungen anhand von Scheduling-Richtlinie, Priorität, Affinität und Arbeitslast. Ein Nice-Wert ist eine Eingabe für gewöhnliche Richtlinien mit zeitlicher Aufteilung.
Prozesse · Lektion 8
Niceness
Erfahre, wie Nice-Werte das Gewicht beim CPU-Scheduling gewöhnlicher Linux-Prozesse beeinflussen.
Nice-Werte interpretieren
Der konventionelle Nice-Bereich reicht von -20 bis 19:
- Ein niedrigerer Wert verleiht einer Aufgabe im Verhältnis zu vergleichbaren Aufgaben ein größeres Scheduling-Gewicht.
- Ein höherer Wert macht sie „netter“, indem er ihr ein geringeres relatives Gewicht gibt.
- Der Standardwert ist gewöhnlich
0.
Niceness reserviert weder einen Prozentsatz einer CPU noch garantiert sie eine sofortige Ausführung. Ihre Wirkung ist am deutlichsten, wenn vergleichbare ausführungsbereite Aufgaben um CPU-Zeit konkurrieren. Echtzeitrichtlinien, cgroups, CPU-Affinität, E/A-Wartezeiten und andere Kontrollen können das beobachtete Verhalten stärker bestimmen.
Welcher Nice-Wert verleiht unter derselben gewöhnlichen Scheduling-Richtlinie ein größeres relatives CPU-Gewicht?
Niceness anzeigen
In top zeigt die Spalte NI den Nice-Wert an. Du kannst ihn auch ausdrücklich von ps anfordern:
$ ps -o pid,ni,pri,stat,cmd -p 3245
NI ist der für Benutzer sichtbare Nice-Wert. Eine Spalte PRI oder eine ähnliche Spalte kann eine abgeleitete Scheduler-Priorität darstellen, deren Skala sich je nach Werkzeug und Scheduling-Klasse unterscheidet. Gehe daher nicht davon aus, dass beide Spalten austauschbar sind.
Welche Spalte von top zeigt gewöhnlich den Nice-Wert an?
Einen Befehl mit `nice` starten
Verwende nice, um einen neuen Befehl mit einem angepassten Wert zu starten:
$ nice -n 5 long-computation
Die angeforderte Anpassung und die akzeptierte Syntax kannst du im lokalen Handbuch prüfen. Ein unprivilegierter Benutzer kann einen Befehl gewöhnlich netter machen, indem er seinen Wert erhöht. Ein niedrigerer Nice-Wert und damit ein günstigeres Scheduling-Gewicht erfordern entsprechende Privilegien oder konfigurierte Ressourcenlimits.
Was bewirkt nice -n 5 long-computation?
Einen bestehenden Prozess mit `renice` ändern
Verwende renice für einen bereits laufenden Prozess:
$ renice -n 10 -p 3245
Dies fordert den Nice-Wert 10 für PID 3245 an. Prüfe zuerst das Ziel, da PIDs wiederverwendet werden können, und bestätige anschließend den resultierenden Wert. Berechtigungen hängen von Eigentum, Privilegien, Ressourcenlimits und Systemrichtlinien ab. Die Erhöhung des Nice-Werts ist für einen eigenen Prozess gewöhnlich erlaubt; das Rückgängigmachen dieser Änderung kann ohne Privilegien untersagt sein.
Welches Werkzeug ändert den Nice-Wert eines bestehenden Prozesses?
Das Lab Linux-Prozesse verwalten und überwachen bietet eine kontrollierte Umgebung zum Anzeigen und Ändern von Nice-Werten. Vergleiche konkurrierende CPU-intensive Aufgaben, statt auf einem untätigen System einen sichtbaren Unterschied zu erwarten.
Lektion abgeschlossen
Sie haben Niceness abgeschlossen
Du kannst nun Niceness interpretieren und anpassen, ohne sie als CPU-Garantie zu behandeln.
Lies niedrigere Nice-Werte als größeres relatives Scheduling-Gewicht.
Prüfe
NIgetrennt von abgeleiteten Prioritätsfeldern.Verwende
nicebeim Starten eines Befehls.Verwende
renicefür einen bestehenden, überprüften Prozess.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen