So setzen Sie Linux -Prozesspriorität mithilfe von Nizza- und Renice -Befehlen

So setzen Sie Linux -Prozesspriorität mithilfe von Nizza- und Renice -Befehlen

In diesem Artikel werden wir das kurz erklären Kernel Scheduler (auch als die bekannt als die Prozessplaner), Und Prozesspriorität, Welches sind Themen jenseits des Rahmens dieses Leitfadens. Anschließend werden wir in ein wenig Linux -Prozessmanagement eintauchen: Sehen Sie, wie Sie ein Programm oder Befehl mit geänderter Priorität ausführen, und ändern Sie auch die Priorität des Ausführens von Linux -Prozessen.

Lesen Sie auch: So überwachen Sie Linux-Prozesse und setzen

Verständnis des Linux -Kernel -Schedulers

Ein Kernel -Scheduler ist eine Einheit des Kernels, die den am besten geeigneten Prozess aus allen ausgeführten Prozessen zum nächsten ausführen. Es verteilt die Prozessorzeit zwischen den runnablen Prozessen auf einem System. Ein rennbarer Prozess ist einer, der nur auf die CPU -Zeit wartet. Es ist bereit, ausgeführt zu werden.

Der Scheduler bildet den Kern von Multitasking unter Linux und verwendet einen vorrangigen Planungsalgorithmus, um zwischen den Runnable-Prozessen im System zu wählen. Es richtet sich Prozesse, die sowohl auf den verdienten als auch auf der Notwendigkeit einer CPU -Zeit basieren.

Priorität des Prozesses und einen guten Wert verstehen

Der Kernel speichert viele Informationen zu Prozessen, einschließlich der Prozesspriorität, die einfach die Planungspriorität ist, die einem Prozess beigefügt ist. Prozesse mit einer höheren Priorität werden vor denen mit einer niedrigeren Priorität ausgeführt, während Prozesse mit der gleichen Priorität nach dem nächsten wiederholt geplant sind.

Es gibt insgesamt insgesamt 140 Prioritäten und zwei unterschiedliche Prioritätsbereiche, die unter Linux implementiert sind. Der erste ist ein schöner Wert (Nettigkeit) die reicht von -20 (Wert höchster Priorität) zu 19 (niedrigster Prioritätswert) und der Standard ist 0, Das werden wir in diesem Leitfaden aufdecken. Der andere ist die Echtzeit-Priorität, die von reicht von 1 Zu 99 standardmäßig 100 Zu 139 sind für den Benutzerraum bestimmt.

Ein wichtiges Merkmal von Linux ist die dynamische Prioritäts-basierte Zeitplanung, die es ermöglicht, den guten Wert der Prozesse zu ändern (erhöht oder verringert), abhängig von Ihren Anforderungen, wie wir später sehen werden.

So überprüfen Sie einen guten Wert von Linux -Prozessen

Um die netten Werte von Prozessen zu sehen, können wir Dienstprogramme wie PS, Top oder HTOP verwenden.

Um das Anzeigen eines guten Wertes mit PS-Befehl im benutzerdefinierten Format zu verarbeiten (hier die hier Ni Die Spalte zeigt die Schönheit von Prozessen).

$ ps -eo pid, ppid, ni, comm 
Linux verarbeitet schöne Werte

Alternativ können Sie die Top- oder HTOP -Dienstprogramme verwenden, um Linux -Prozesse wie gezeigt nette Werte anzuzeigen.

$ top $ htop 
Überprüfen Sie den Linux -Prozess nette Werte mit dem Top -Befehl Überprüfen Sie den Linux -Prozess nette Werte mithilfe des HTOP -Befehls

Unterschied zwischen PR oder PRI und Ni

Von dem Spitze Und htop Die obigen Ausgänge werden feststellen, dass eine Spalte genannt wird Pr Und PRI rezeptiv, was die Priorität eines Prozesses zeigt.

Dies bedeutet daher::

  • Ni - ist der schöne Wert, der ein Benutzer-Raum-Konzept ist, während
  • Pr oder PRI - ist die tatsächliche Priorität des Prozesses, wie vom Linux -Kernel ersichtlich.
Wie man PR- oder PRI -Werte berechnet
Gesamtzahl der Prioritäten = 140 Echtzeit -Prioritätsbereich (PR oder PRI): 0 bis 99 Benutzerraum Prioritätsbereich: 100 bis 139 

Nette Wertebereich (NI): -20 bis 19

PR = 20 + NI PR = 20 + (-20 bis + 19) PR = 20 + -20 bis 20 + 19 PR = 0 bis 39, was gleich 100 bis 139 ist. 

Aber wenn Sie a sehen rt Anstelle einer Zahl, wie im folgenden Screenshot gezeigt wird.

Linux RT -Prozess

So führen Sie einen Befehl mit einem bestimmten guten Wert unter Linux aus

Hier sehen wir uns an, wie die CPU -Verwendung eines Programms oder Befehls priorisiert werden kann. Wenn Sie ein sehr CPU-intensives Programm oder eine sehr CPU-intensive Aufgabe haben, aber Sie auch verstehen, dass es möglicherweise lange dauern kann, bis die Abschluss ist, können Sie es mit der hohen oder günstigen Priorität einstellen Schöner Befehl.

Die Syntax ist wie folgt:

$ nice -n niemand-value [Befehlsregs] oder $ nice-Nizenwert-Wert [Befehlsregs] #Es ist verwirrend für negative Werte oder $ Nizza-Adjustment = Niemand-Wert [Befehlsregs] 

Wichtig:

  • Wenn kein Wert bereitgestellt wird, setzt Nizza standardmäßig eine Priorität von 10 an.
  • Ein Befehl oder ein Programm, das ohne nette Standardeinstellungen zu einer Priorität von Null ausgeführt wird.
  • Nur Root kann einen Befehl oder ein Programm mit erhöhter oder hoher Priorität ausführen.
  • Normale Benutzer können nur einen Befehl oder ein Programm mit niedriger Priorität ausführen.

Anstatt beispielsweise ein Programm oder Befehl mit der Standardpriorität zu starten, können Sie es mit einer bestimmten Priorität mit dem folgenden netten Befehl starten.

$ sudo schön -n 5 tar -czf Backup.Teer.gz ./Dokumente/* oder $ sudo Nizza -Anpassung = 5 TAR -CZF -Sicherung.Teer.gz ./Unterlagen/* 

Sie können auch die dritte Methode verwenden, die besonders für negative Freundlichkeitswerte ein wenig verwirrend ist.

$ sudo schön -5 tar -czf Backup.Teer.gz ./Unterlagen/* 

Ändern Sie die Planungspriorität eines Prozesses unter Linux

Wie bereits erwähnt, ermöglicht Linux eine dynamische Prioritätsplanung. Wenn ein Programm bereits ausgeführt wird, können Sie seine Priorität mit dem ändern Befehl Renice in dieser Form:

$ renice -n -12 -p 1055 $ renice -n -2 -u Apache 
Priorität des Prozesses ändern

Aus der Probe Spitze Ausgabe unten die Schönheit der Teamspe+ mit PID 1055 ist jetzt -12 und für alle Prozesse, die Benutzer Apache gehören, ist -2.

Mit dieser Ausgabe können Sie die Formel sehen PR = 20 + Ni steht,

PR für TS3Server = 20 + -12 = 8 PR für Apache -Prozesse = 20 + -2 = 18 
Beobachten Sie Prozesse nette Werte

Alle Änderungen, die Sie vornehmen Befehl Renice Zu den Prozessen eines Benutzers sind die schönen Werte nur bis zum nächsten Neustart anwendbar. Lesen Sie den nächsten Abschnitt, um dauerhafte Standardwerte festzulegen, um den nächsten Abschnitt zu erhalten.

So setzen Sie den Standardwert für die Prozesse eines bestimmten Benutzers fest

Sie können den Standardwert eines bestimmten Benutzers oder einer bestimmten Gruppe in der Standardeinstellung festlegen /etc/Sicherheit/Grenzen.Conf Datei. Die Hauptfunktion besteht darin, die Ressourcengrenzen für die angemeldeten Benutzer über PAM zu definieren.

Die Syntax zum Definieren eines Grenats für einen Benutzer lautet wie folgt (und die möglichen Werte der verschiedenen Spalten werden in der Datei erläutert):

#    

Verwenden Sie nun die Syntax unten, wo hart - bedeutet, harte Verbindungen und weiche Mittel durchzusetzen - die Softgrenzen durchsetzen.

  Priorität  

Erstellen Sie alternativ eine Datei unter /etc/Sicherheit/Grenzen.D/ Die Einstellungen in der obigen Hauptdatei überschreiben und diese Dateien werden in alphabetischer Reihenfolge gelesen.

Beginnen Sie mit dem Erstellen der Datei /etc/Sicherheit/Grenzen.D/Tecmint-Priorität.Conf Für Benutzer Tecmint:

# vi/etc/Sicherheit/Grenzen.D/Tecmint-Priorität.Conf 

Fügen Sie dann diese Konfiguration hinzu:

Tecmint Hart Priorität 10 

Speichern und schließen Sie die Datei. Von nun an jeder Prozess, der im Besitz von Tecmint wird einen schönen Wert von haben 10 und PR von 30.

Weitere Informationen finden Sie in den Menschenseiten von Hübsch Und Renice:

$ MAN NICE $ MAN RENICE 

Möglicherweise lesen Sie auch die folgenden Artikel über Linux -Prozessmanagement.

  1. So finden und töten Sie Laufprozesse unter Linux
  2. Ein Leitfaden zum Töten, Pkill und Killall, um einen Prozess in Linux zu beenden
  3. So überwachen Sie die Systemnutzung, Ausfälle und Fehlerbehebung bei Linux -Servern
  4. CPUTOOL - Grenz- und Steuerelement -Nutzung eines jeden Prozesses unter Linux

In diesem Artikel haben wir den Kernel -Scheduler, die Prozesspriorität, kurz erläutert, wie man ein Programm oder einen Befehl mit geänderter Priorität ausführt und auch die Priorität von aktiven Linux -Prozessen ändert. Sie können alle Gedanken zu diesem Thema über das Feedback -Formular unten teilen.