So priorisieren Sie Linux-Prozesse mit Nice und Renice

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.

Was sind die Prioritäten der Prozesse in Linux
Es ist wichtig, bevor Sie wissen, wie nett und ehrlich die Arbeit ist, um zu verstehen, warum eine bestimmte Priorität eines Linux-Prozesses festgelegt wird. Die Priorität eines Prozesses bestimmt, wie lange der ausgewählte Prozess in einem Intervall vom Prozessor verwendet werden kann von bestimmter Zeit.

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.

Wie der Kernel-Programmierer unter Linux funktioniert
Ein weiterer Punkt, den Sie bei der Verwaltung von Linux-Systemen berücksichtigen sollten, ist, dass der Kernel für den Start zuständig ist. Es hat einen Programmierer oder Scheduler in seinem Kern, der eine Einheit des Kernels ist, die den am besten geeigneten Prozess aller verfügbaren ausführbaren Prozesse bestimmt, der in der ersten Instanz ausgeführt werden muss. Anschließend wird die Prozessorzeit zwischen den ausführbaren Prozessen des Systems aufgeteilt.

See also  Korrigieren Sie beschädigte USB-Festplatten, ohne Windows 10, 8, 7 zu formatieren

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: Überprüfung-der-Werte-der-Prozesse-in-Linux-1.png

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:

oben
Überprüfung-der-Werte-der-Prozesse-in-Linux-2.png

htop
Überprüfung-der-Werte-der-Prozesse-in-Linux-3.png

Hinweis
Falls Sie kein htop haben, können Sie es installieren, indem Sie 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. Diese bedeuten:

NI
Es ist ein freundlicher Wert, das heißt, es ist ein User-Space-Konzept

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

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.

See also  Erstellen Sie Gruppenrichtlinienobjekte für die Sicherung und Wiederherstellung Windows Server 2019, 2016

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 & 

Unterschied zwischen PR-o-PRI und NI-linux-4.png

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. How-to-Execute-a-Command-with-a-Value-Nice-on-Linux-5.png

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.

See also  Fix external USB wird im Windows 10-Datei-Explorer nicht angezeigt

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

 Mann nett Mann Renice 

Prozesse-auf-Linux-6.png

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.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *