So setzen Sie Prozessprioritäten mit nice und renice unter Linux

Inhalt

Bash-Shell auf einem Ubuntu-Laptop

das nice und renice Mit Befehlen können Sie anpassen, wie der Kernel seine Prozesse behandelt, indem Sie seine Prioritäten anpassen. Lesen Sie dieses Tutorial, um zu erfahren, wie Sie sie auf Linux- und Unix-ähnlichen Betriebssystemen verwenden., wie macOS.

Alles eine Frage des Verfahrens

In Ihrem Linux- oder Unix-ähnlichen Computer, Es werden viele Prozesse ausgeführt, noch bevor Sie die Anwendung starten, die Sie verwenden möchten. Die meisten dieser Prozesse sind wichtige Elemente von Linux selbst oder unterstützen Prozesse für seine grafische Desktop-Umgebung.. Hinter den Kulissen passiert viel. Auf jeden Fall, es gibt nur so viele Systemressourcen und CPU-Zeit für alle. Der Linux-Kernel ist der Controller all dieser Prozesse.

Es ist der Kernel, der entscheiden muss, welche Prozesse im Moment Aufmerksamkeit und Ressourcen erhalten, und welche müssen warten. Der Kernel jongliert ständig mit Prozessen und Prioritäten, um sicherzustellen, dass der Computer so reibungslos wie möglich läuft und alle Prozesse angemessen eingebunden sind. Einige Prozesse werden bevorzugt behandelt. Sie sind für den Gesamtbetrieb des Computers so wichtig, dass Ihre Bedürfnisse an erster Stelle stehen sollten, Sagen wir, dein Browser.

Guter Wert

Eines der Kriterien, die verwendet werden, um festzustellen, wie der Kernel eine Prozedur behandelt, ist der nette Wert. Jedes Verfahren hat einen guten Wert. Der nette Wert ist eine ganze Zahl im Bereich von -19 ein 20. Alle Standardprozesse beginnen mit einem schönen Wert von Null.

Der Trick dabei ist, dass je höher der schöne Wert ist, desto besser ist Ihr Verfahren für die Sonstiges Prozesse. Mit anderen Worten, ein schöner hoher Wert sagt dem Kernel, dass dieser Vorgang gerne wartet. Eine negative Zahl ist das Gegenteil von nett sein. Je höher der negative angenehme Wert, Plus egoistisch Der Prozess ist. Sie versuchen, so viel CPU-Zeit wie möglich zu erhalten, ohne auf die anderen Prozesse zu achten.

Wir können die nutzen nice Befehl an anziehen guter Wert, wenn a der Prozess beginnt und wir können gebrauchen renice zum anpassen guter Wert eines laufenden Prozesses.

Das gute Kommando

Wir können die nutzen nice Befehl, um den Nice-Wert eines Programms anzupassen, wenn wir es starten. Dies ermöglicht es uns, die Priorität, die der Kernel der Prozedur gibt, zu erhöhen oder zu verringern, in Verbindung mit den anderen Prozessen.

Angenommen, ein Programmierer hat ein Programm namens . geschrieben ackermann . Dies berechnet Ackerman-Funktionen. Es ist CPU- und speicherintensiv. Der Programmierer kann das Programm mit dem folgenden Befehl starten:

./ackermann

ackermann-Befehl im Terminalfenster

Wir können die nutzen top Befehl zum Anzeigen des laufenden Programms.

oben

top läuft in einem terminal

Wir können die Details der ackermann Programm in top. Der gute Wert ist die Zahl in der "NI-Spalte". Es wurde auf Null gesetzt, wie wir hoffen konnten.

Starten wir neu und machen wir es diesmal weniger anspruchsvoll. Wir werden einen guten Wert von 15 für ihn ackermann Zeitplan wie folgt. Schreib schön, ein Leerzeichen, -15, ein weiteres Leerzeichen und dann den Namen des Programms, das Sie starten möchten. In unserem Beispiel, unser Dummy-Programmierer verwendet ./ackermann.

nett -15 ./ackermann

Guter Befehl 15 im Terminalfenster

Vorsichtig sein, das “-15” ist nicht minus fünfzehn. Es ist fünfzehn positiv. Die “-” muss angegeben werden nice wir übergeben einen Parameter. Um eine negative Zahl anzugeben, Sie müssen zwei Zeichen eingeben “-“.

Wenn wir jetzt anfangen top wieder, Wir können die Änderung im Verhalten von sehen ackermann.

oben

top läuft in einem terminal

Mit einem guten Wert von 15, ackermann verbraucht nicht die meiste CPU-Zeit. GNOME und Rhythmbox verwenden mehr. Wir haben regiert ackermann in ein bisschen.

Jetzt machen wir das Gegenteil und geben ackermann ein guter negativer Wert. Beachten Sie die Verwendung von zwei Zeichen “-“. Um eine Bewerbung egoistischer und weniger angenehm zu machen, du musst benutzen sudo. Jeder kann Ihre App angenehmer machen, aber nur Superuser können einen noch egoistischer machen.

sudo nett --10 ./ackermann

Schön -10 Befehl im Terminalfenster

Lass uns nach oben rennen und sehen, was es für einen Unterschied gemacht hat.

oben

top läuft in einem terminal

Diesmal ackermann hat einen guten Wert von -10. Es ist wieder an der Spitze und verbraucht mehr CPU-Zeit als zuvor.

Das Renice-Kommando

das renice Mit dem Befehl können wir den angenehmen Wert einer laufenden Prozedur anpassen. Wir müssen nicht aufhören und es neu starten mit nice. Wir können im Handumdrehen einen neuen Wert ermitteln.

das renice Befehl nimmt Prozedur-ID, o PID, der Prozedur als Kommandozeilenparameter. Wir können die Prozedur-ID aus der Spalte extrahieren “PID” An top , wir können es gebrauchen ps und grep um es für uns zu finden, auf dem nächsten weg. Offensichtlich, Sie werden Ihren Benutzernamen anstelle von schreiben dave und den Namen des Verfahrens, an dem Sie interessiert sind, anstelle von ackermann.

ps -ich dave | Griff Ackermann

Jetzt haben wir die PID, mit der wir sie verwenden können renice. Wir werden bestimmen ackermann zurück zu einem angenehmeren Auftreten mit einem guten Wert von fünf. Um den netten Wert einer laufenden Prozedur zu ändern, verwenden müssen sudo. Bitte beachten Sie, dass es keine “-” bei 5 Parameter. Sie brauchen keine für positive Zahlen und Sie brauchen nur eine, nicht zwei, für negative Zahlen.

sudo renice -n 5 2339

Wir bekommen die Bestätigung, dass renice guter Wert hat sich geändert. Es zeigt uns den alten Wert und den neuen Wert.

Der Kernel leistet im Allgemeinen hervorragende Arbeit bei der Verwaltung von Prioritäten und der Zuweisung von CPU-Zeit und Systemressourcen. Aber wenn Sie eine lange Aufgabe ausführen müssen, die CPU-intensiv ist und es Ihnen egal ist, wann sie beendet ist, es wird Ihren Computer etwas flüssiger laufen lassen, wenn Sie einen schönen höheren Wert für diese Aufgabe einstellen. Das wird für alle besser.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.