So priorisieren Sie Linux-Prozesse mit Nice und Renice

Innerhalb der verschiedenen Verwaltungsaufgaben von Linux-Betriebssystemen ist es ideal, die Abläufe innerhalb des Systems im Detail zu kennen, da dies notwendig ist, um intern zu wissen, wie jeder Prozess die Funktion erfüllt, für die er entwickelt wurde.

Heute wird Solvetic detailliert analysieren, wie die Prozesse unserer Linux-Distributionen mit nice and renice priorisiert werden können.

Was sind Prozessprioritäten in Linux?Es ist wichtig, bevor Sie wissen, wie nett und renice arbeiten, ein wenig darüber zu verstehen, warum das Festlegen einer bestimmten Priorität eines Linux-Prozesses, der Priorität eines Prozesses, verwendet wird, um zu bestimmen, wie lange der ausgewählte Prozess den Prozessor verwenden kann in einem Intervall, einer bestimmten Zeit.

In Linux-Umgebungen werden die Prozessoren von mehreren Prozessen geteilt (die Prozesse wechseln sich bei der Verwendung des (der) verfügbaren Prozessors ab), was dem Benutzer ermöglicht, wahrzunehmen, dass alle Anwendungen oder Aufgaben gleichzeitig ausgeführt werden, also durch die Definition einer Priorität , zeigen wir dem System an, welche Prozesse den Prozessor stärker nutzen können und welche Prozesse an zweiter Stelle stehen.

Diese Priorität kann dazu führen, dass einige Prozesse zu keinem Zeitpunkt ausgeführt werden, da sie von anderen Prozessen mit einer höheren Nutzungspriorität an das Ende der Prozesswarteschlange verschoben werden.

So funktioniert der Kernel-Scheduler unter LinuxEin weiterer Punkt, den Sie bei der Verwaltung von Linux-Systemen beachten sollten, ist die Kenntnis des Kernels, der für das Booten zuständig ist. Es hat einen Programmierer oder Scheduler in seinem Kernel, das ist eine Kernel-Einheit, die den geeignetsten Prozess aller verfügbaren ausführbaren Prozesse bestimmt, der zuerst ausgeführt werden muss. Es weist dann Prozessorzeit zwischen ausführbaren Prozessen auf dem System zu.

Ein ausführbarer Prozess ist ein Prozess, der nur darauf wartet, dass die CPU-Zeit ausgeführt wird. Der Programmierer bildet den Kern des Multitasking unter Linux und verwendet einen prioritätsbasierten Planungsalgorithmus, um aus ausführbaren Prozessen auf dem System auszuwählen. Dann klassifiziert es die Prozesse auf der Grundlage der grundlegendsten Prozesse sowie der jeweiligen CPU-Zeitanforderungen.

Unter Linux gibt es insgesamt 140 Prioritäten und zwei verschiedene Prioritätsbereiche, die unter Linux implementiert sind:

  • Der erste ist der nette Wert, der von -20 (höchster Prioritätswert) bis 19 (niedrigster Prioritätswert) reicht und der Standardwert ist 0.
  • Die zweite ist die Echtzeitpriorität, die standardmäßig von 1 bis 99 reicht, dann sind 100 bis 139 für den Benutzerbereich bestimmt.

1. Überprüfung der Werte von Prozessen in Linux


Unter Linux können wir die Werte eines Prozesses mit Dienstprogrammen wie ps, top oder htop überprüfen.
Wenn wir den ps-Parameter verwenden, können wir Folgendes ausführen:
 ps -eo pid, ppid, ni, comm
Dort zeigt die Spalte nicht den Wert jedes Prozesses:

VERGRÖSSERN

Alternativ können wir die top- oder htop-Parameter verwenden, bei denen wir viel vollständigere Ergebnisse sehen und automatisch die Spalte mit den gleichen Werten jedes angezeigten Prozesses sehen:

oben

VERGRÖSSERN

htop

VERGRÖSSERN

NotizFalls htop nicht vorhanden ist, können wir es installieren, indem wir die Zeile sudo apt install htop ausführen

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, sie bedeuten:

WEDEREs ist ein freundlicher Wert, das heißt, es ist ein Benutzerraumkonzept

PR / PRIEs ist die eigentliche Priorität des Prozesses, diese Informationen werden vom Linux-Kernel bereitgestellt

Diese Werte basieren auf folgendem Grund.

 Gesamtzahl der Prioritäten = 140 Echtzeit-Prioritätsbereich (PR oder PRI): 0 bis 99 Benutzerbereich-Prioritätsbereich: 100 bis 139 NI-Wertebereich (Nice Value) -20 bis 19: PR = 20 + NI PR = 20 + ( -20 bis + 19) PR = 20 + -20 bis 20 + 19 PR = 0 bis 39 entspricht 100 bis 139
Wenn in den angezeigten Ergebnissen der rt-Wert angezeigt wird, weist dies darauf hin, dass der Prozess unter Zeitplanungspriorität in Echtzeit ausgeführt wird.

3. So führen Sie einen Befehl mit einem Nice-Wert unter Linux aus


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-Auslastung erfordert, aber auch, dass dieser Vorgang lange dauern kann, dort wird es möglich sein, mit dem nice-Befehl eine hohe oder günstige Priorität zu konfigurieren.

Die Syntax, die wir verwenden können, ist die folgende:

 nice -n nice-value [Befehlsargumente] nice - nice-value [Befehlsargumente] nice --adjustment = nice-value [Befehlsargumente]
Folgendes berücksichtigen:
  • 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 eine Priorität von Null gesetzt
  • Nur der Root-Benutzer kann einen Befehl oder ein Programm mit höherer oder höherer Priorität ausführen
  • Normale Benutzer können nur einen Befehl oder ein Programm mit niedriger Priorität ausführen
Um eine Priorität festzulegen, ist es möglich, ein Programm oder einen Befehl mit der Standardpriorität zu starten, anstatt es mit einer bestimmten Priorität mit dem folgenden netten Befehl zu starten:
 sudo nice -n -5 xclock &
Oder wir können Folgendes ausführen:
 sudo nice --adjustment = 5 xclock &

VERGRÖSSERN

Wir können sehen, dass eine neue ID generiert wird.

4. Ändern Sie die Planungspriorität eines Prozesses in Linux


Bei Verwendung von Linux-Umgebungen ermöglicht es eine dynamische Programmierung basierend auf Prioritäten. Wenn ein Programm bereits läuft, kann seine Priorität mit dem Befehl renice wie folgt geändert werden:
 renice -n -12 -p (PID) renice -n -2 -u (Anwendung)
Wenn wir diesen Befehl ausführen, können wir die alte Priorität und die neue Priorität sehen.

VERGRÖSSERN

5. So legen Sie den Nice-Standard für die Prozesse eines bestimmten Benutzers fest


Sie können den Standardwert für einen bestimmten Benutzer oder eine bestimmte Gruppe in der Datei /etc/security/limits.conf festlegen. Seine Hauptfunktion besteht darin, Ressourcengrenzen für Benutzer zu definieren, die über PAM verbunden sind.

Die Syntax zum Definieren eines Grenzwerts für einen Benutzer lautet wie folgt:

 
Alternativ ist es möglich, in /etc/security/limits.d/ eine Datei zu erstellen, die sich um das Überschreiben der Konfiguration in der Hauptdatei kümmert und diese Dateien in alphabetischer Reihenfolge gelesen werden.

Wenn wir die Hilfe von nice oder renice bekommen möchten, können wir Folgendes ausführen:

 mann netter mann renice

VERGRÖSSERN

Damit haben wir die Möglichkeit, Prioritäten nach den Bedürfnissen der Prozesse zu setzen, die CPU-Auslastung unter Linux deutlich zu optimieren und die administrativen Aufgaben deutlich zu verbessern.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave