Prozess-Scheduling anpassen

Red Hat Enterprise LinuxBeginner
Jetzt üben

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 Prozess sleep 600 im Hintergrund zu starten.
  • Weisen Sie dem neuen Prozess eine hohe Priorität mit einem Nice-Wert von -10 zu.
  • Ü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 -10 gestartet werden.
  • Sie müssen sudo verwenden, 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 von 5 zu ä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 5 sein.
  • Sie müssen sudo verwenden, um die Priorität des Prozesses zu ändern (da er mit sudo gestartet wurde und root gehö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.

✨ Lösung prüfen und üben✨ Lösung prüfen und üben