Einführung
In dieser Herausforderung werden Sie untersuchen, wie man die Prozessplanung (Scheduling) auf einem Linux-System verwaltet. Das Prozess-Scheduling ist eine Kernfunktion des Betriebssystems, die bestimmt, welcher Prozess wann und wie lange die CPU nutzen darf. Als Systemadministrator können Sie diese Planung beeinflussen, indem Sie die Prozessprioritäten anpassen. Sie werden die Befehle nice und renice verwenden, um die Priorität von Prozessen zu steuern – eine grundlegende Fertigkeit, um die Systemleistung zu optimieren und sicherzustellen, dass kritische Anwendungen die benötigten Ressourcen erhalten.
Einen Prozess mit benutzerdefinierter Priorität starten
Unter Linux besitzt jeder Prozess einen sogenannten „Nice“-Wert, der seine Priorität beim Scheduling beeinflusst. Dieser Wert reicht von -20 (höchste Priorität) bis 19 (niedrigste Priorität). Mit dem Befehl nice können Sie ein neues Programm mit einem vorgegebenen Nice-Wert starten. Beachten Sie, dass nur der Root-Benutzer (oder ein Benutzer mit sudo-Rechten) einen negativen Nice-Wert festlegen kann, um die Priorität eines Prozesses zu erhöhen.
Aufgaben
- Verwenden Sie den Befehl
nice, um einen neuen Prozesssleep 600im Hintergrund zu starten. - Weisen Sie dem neuen Prozess eine hohe Priorität mit einem Nice-Wert von
-10zu. - Überprüfen Sie die Priorität des neuen Prozesses mit dem Befehl
ps.
Anforderungen
- Der auszuführende Befehl lautet
sleep 600. - Der Prozess muss mit einem Nice-Wert von
-10gestartet werden. - Sie müssen
sudoverwenden, um einen negativen Nice-Wert zuzuweisen. - Der Prozess muss im Hintergrund ausgeführt werden, damit Sie das Terminal weiterhin nutzen können.
Beispiel
Nach dem Start des Prozesses sollte die Ausgabe von ps -e -o pid,ni,comm | grep sleep den sleep-Prozess mit einem NI-Wert (Nice) von -10 anzeigen. Die PID wird variieren.
ps -e -o pid,ni,comm | grep sleep
2250 -10 sleep
Sie können auch ps -e -o pid,ni,comm verwenden, um alle Prozesse und deren Nice-Werte zu sehen:
PID NI COMMAND
1 0 systemd
2188 0 bash
2250 -10 sleep
Priorität eines laufenden Prozesses mit renice anpassen
Manchmal ist es notwendig, die Priorität eines bereits laufenden Prozesses zu ändern. Hierfür können Sie den Befehl renice verwenden. Ähnlich wie bei nice benötigen Sie sudo-Rechte, um die Priorität zu erhöhen (einen niedrigeren oder negativeren Nice-Wert festzulegen). Ebenso ist sudo erforderlich, um die Priorität eines Prozesses zu ändern, der einem anderen Benutzer gehört, wie zum Beispiel root.
Aufgaben
- Ermitteln Sie die Prozess-ID (PID) des
sleep 600-Prozesses, den Sie im vorherigen Schritt gestartet haben. - Verwenden Sie den Befehl
renice, um dessen Priorität auf einen niedrigeren Wert mit einem Nice-Wert von5zu ändern. - Überprüfen Sie die neue Prioritätsstufe mit dem Befehl
ps.
Anforderungen
- Der Zielprozess ist der
sleep 600-Prozess aus dem vorherigen Schritt. - Der neue Nice-Wert muss
5sein. - Sie müssen
sudoverwenden, um die Priorität des Prozesses zu ändern (da er mitsudogestartet wurde undrootgehört).
Beispiel
Nach der Ausführung des renice-Befehls sollte die Ausgabe von ps -e -o pid,ni,comm | grep sleep den sleep-Prozess mit einem neuen NI-Wert von 5 anzeigen.
ps -e -o pid,ni,comm | grep sleep
2250 5 sleep
Sie können auch ps -e -o pid,ni,comm verwenden, um alle Prozesse zu sehen:
PID NI COMMAND
1 0 systemd
2188 0 bash
2250 5 sleep
Zusammenfassung
In dieser Herausforderung haben Sie die Grundlagen der Anpassung von Prozessprioritäten auf einem Linux-System gelernt. Sie haben geübt, wie man mit dem Befehl nice einen neuen Prozess mit einer bestimmten Priorität startet und wie man mit dem Befehl renice die Priorität eines bereits laufenden Prozesses ändert. Zudem haben Sie gelernt, dass das Erhöhen der Priorität eines Prozesses (das Festlegen eines negativen Nice-Werts) Administratorrechte (sudo) erfordert. Diese Fertigkeiten sind für die Systemadministration und die Leistungsoptimierung unerlässlich.



