Innerhalb der verschiedenen Verwaltungsaufgaben von Linux-Betriebssystemen ist es ideal, im Detail zu wissen, wie Prozesse innerhalb des Systems funktionieren, da dies von grundlegender Bedeutung ist, um zu wissen, wie jeder Prozess intern die Funktion erfüllt, für die er entwickelt wurde.
Heute wird TechnoWikis detailliert analysieren, wie die Prozesse unserer Linux-Distributionen mithilfe von nice and renice priorisiert werden können.
In Linux-Umgebungen werden die Prozessoren von mehreren Prozessen gemeinsam genutzt (die Prozesse werden durch die Verwendung der verfügbaren Prozessoren abgewechselt), sodass der Benutzer erkennt, dass alle Anwendungen oder Aufgaben gleichzeitig ausgeführt werden, und so eine Priorität definiert Geben wir dem System an, welche Prozesse den Prozessor stärker nutzen können und welche Prozesse eine zweite Ebene belegen.
Diese Priorität kann dazu führen, dass einige Prozesse zu keinem Zeitpunkt ausgeführt werden, da sie von anderen Prozessen mit höherer Nutzungspriorität gegen Ende der Prozesswarteschlange verschoben werden.
Ein ausführbarer Prozess wartet nur auf die Ausführung der CPU-Zeit. Der Programmierer bildet den Kern des Multitasking unter Linux und verwendet einen Programmieralgorithmus, der auf der Priorität basiert, um unter den ausführbaren Prozessen im System auszuwählen. Anschließend werden die Prozesse basierend auf den grundlegendsten sowie dem CPU-Zeitbedarf der einzelnen Prozesse klassifiziert.
In Linux sind insgesamt 140 Prioritäten und zwei verschiedene Prioritätsbereiche in Linux implementiert:
- Die erste ist die Empfindlichkeit, die von -20 (höchster Prioritätswert) bis 19 (niedrigster Prioritätswert) variiert, und die Standardeinstellung ist 0.
- Die zweite ist die Echtzeitpriorität, die standardmäßig zwischen 1 und 99 liegt. Anschließend werden dem Benutzerbereich 100 bis 139 zugewiesen.
1. Überprüfung der Werte der Prozesse unter Linux
Unter Linux können wir die Werte eines Prozesses mit Hilfsprogrammen wie ps, top oder htop überprüfen.
Wenn wir den Parameter ps verwenden, können wir Folgendes ausführen:
ps-oder pid, ppid, noch comm
Dort verrät uns die Spalte auch nicht den Wert jedes Prozesses:
Alternativ können wir die Parameter top oder htop verwenden, wo wir viel vollständigere Ergebnisse sehen und automatisch die Spalte oder die gleichen Werte für jeden implementierten Prozess sehen:
2. Unterschied zwischen PR oder PRI und NI und wie man ihre Werte berechnet
Wenn wir die Parameter top und htop ausführen, sehen wir die Spalten PR, PRI oder NI. Diese bedeuten:
Diese Werte basieren auf Folgendem.
Gesamtzahl der Prioritäten = 140 Echtzeit-Prioritätsintervall (PR oder PRI): 0 bis 99 Prioritätsbereich des Benutzerraums: 100 bis 139 Wertebereich NI (Nice Value) -20 bis 19: PR = 20 + NI PR = 20 + (-20 bis + 19) PR = 20 + -20 bis 20 + 19 PR = 0 bis 39, was 100 bis 139 entspricht
Wenn in den angezeigten Ergebnissen der Wert rt angezeigt wird, bedeutet dies, dass der Prozess mit Echtzeit-Programmierpriorität ausgeführt wird.
3. Ausführen eines Befehls mit einem Nice-Wert unter Linux
Nice ist dafür verantwortlich, einem Programm bei seiner Ausführung eine bestimmte Priorität zuzuweisen und die Aufgaben und Prozesse zu vererben, die dieses Programm innerhalb des Systems auslösen kann. Nice gilt, wenn wir ein Programm oder eine Aufgabe haben, die viel CPU-Verbrauch erfordert, dieser Vorgang aber auch lange dauern kann. Dort kann mit dem Befehl nice eine hohe oder günstige Priorität konfiguriert werden.
Die Syntax, die wir verwenden können, ist die folgende:
nice -n value-nice [Befehlsargumente] nice - value-nice [Befehlsargumente] nice --adjustment = value-nice [Befehlsargumente]
Beachten Sie Folgendes:
- Wenn kein Wert angegeben wird, setzt nice standardmäßig eine Priorität von 10
- Ein Befehl oder Programm, das ohne Standardwerte ausgeführt wird, wird auf die Priorität Null gesetzt
- Nur der Root-Benutzer kann einen Befehl oder ein Programm mit einer höheren oder höheren Priorität ausführen
- Normale Benutzer können nur Befehle oder Programme mit niedriger Priorität ausführen
Um eine Priorität festzulegen, anstatt ein Programm oder einen Befehl mit der Standardpriorität zu starten, ist es möglich, ihn mit dem folgenden netten Befehl mit einer bestimmten Priorität zu starten:
sudo nice -n -5 xclock &
Oder wir können folgendes ausführen:
sudo nice --adjustment = 5 xclock &
Wir können sehen, dass eine neue ID generiert wird.
4. Ändern Sie die Programmierpriorität eines Prozesses unter Linux
In Linux-Umgebungen ermöglicht dies eine dynamische Programmierung basierend auf Prioritäten. Wenn ein Programm bereits ausgeführt wird, kann seine Priorität mit dem Befehl renice folgendermaßen geändert werden:
renice -n -12 -p (PID) renice -n -2 -u (Bewerbung)
Durch Ausführen dieses Befehls können wir die alte Priorität und die neue Priorität sehen.
5. So legen Sie die Standardeinstellung “Nice” für die Prozesse eines bestimmten Benutzers fest
Es ist möglich, den Standardwert eines bestimmten Benutzers oder einer bestimmten Gruppe in der Datei /etc/security/limits.conf festzulegen. Seine Hauptfunktion besteht darin, die Ressourcengrenzen für Benutzer zu definieren, die über PAM verbunden sind.
Die Syntax zum Definieren eines Grenzwerts für einen Benutzer lautet wie folgt:
<domain> <type> <item> <value>
Alternativ kann eine Datei in /etc/security/limits.d/ erstellt werden, die für das Überschreiben der Konfiguration in der Hauptdatei verantwortlich ist. Diese Dateien werden in alphabetischer Reihenfolge gelesen.
Wenn wir die Hilfe von nice oder renice erhalten möchten, können wir Folgendes ausführen:
Mann nett Mann Renice
So haben wir die Möglichkeit, Prioritäten entsprechend den Anforderungen der Prozesse festzulegen, die Nutzung der CPU unter Linux zu optimieren und die Verwaltungsaufgaben erheblich zu verbessern.