GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux nice and renice Command Tutorial (7 Beispiele)

Die Leistungsfähigkeit der Linux-Befehlszeile lässt sich an der Tatsache ablesen, dass Sie die Planungspriorität von Prozessen mithilfe von Befehlszeilen-Tools sogar leicht optimieren können. Ja, das ist möglich, und in diesem Tutorial werden wir besprechen, wie man das mit nice macht und renice Dienstprogramme.

Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele in diesem Artikel auf einem Ubuntu 16.04LTS-System getestet wurden.

Linux-nice-and-renice-Befehle

Während Sie mit dem Befehl nice ein Programm/Prozess mit geänderter Scheduling-Priorität ausführen können, können Sie mit dem Befehl renice die Scheduling-Priorität eines bereits laufenden Prozesses ändern. Im Folgenden finden Sie die generische Syntax für diese beiden Befehle:

nice [OPTION] [COMMAND [ARG]...]
renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

Hier ist, was ihre jeweiligen Manpages über sie zu sagen haben:

Nice: 
Run COMMAND with an adjusted niceness, which affects process schedul?
ing. With no COMMAND, print the current niceness. Niceness values
range from -20 (most favorable to the process) to 19 (least favorable
to the process).
Renice:
Renice alters the scheduling priority of one or more running processes.
The following who parameters are interpreted as process ID's, process
group ID's, or user names. Renice'ing a process group causes all pro?
cesses in the process group to have their scheduling priority altered.
Renice'ing a user causes all processes owned by the user to have their
scheduling priority altered. By default, the processes to be affected
are specified by their process ID's.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln, wie diese Tools funktionieren.

Q1. Wie kann man die Nettigkeit von laufenden Programmen/Prozessen überprüfen?

Ja, man sollte zuerst wissen, wie man die bestehende Scheduling-Priorität überprüft, bevor man sie ändert. Wenn es um den Prozess geht, den Sie ausführen möchten, sollten Sie wissen, dass die Standardpriorität immer 0 ist.

Zum Beispiel haben wir den folgenden Prozess ausgeführt:

./test-new

Und bestätigte die Priorität mit dem folgenden Befehl:

ps -lu himanshu | grep test-new

Hier ist „himanshu“ der Benutzer, dem der Prozess „test-new“ gehört. Es folgt die Ausgabe, die der obige Befehl erzeugt hat:

0 S  1000  6306  6125  0  80   0 -   508 hrtime pts/18   00:00:00 test-new

Der Wert in der 8. Spalte ist der nette Wert, und wie Sie sehen können, ist er null.

Q2. Wie gut funktioniert der Befehl?

Kommen wir nun zum Punkt, wie funktioniert der nice-Befehl? Es ist ganz einfach - verwenden Sie das Tool einfach wie folgt:

nice -PRIORITY COMMAND

Wenn ich beispielsweise möchte, dass die Planungspriorität 10 ist, gehe ich wie folgt vor:

nice -10 ./test-new

Das Folgende ist die ps-Befehlsausgabe in diesem Fall, die bestätigt, dass die Priorität auf 10 geändert wurde.

0 S  1000  6694  6125  0  90  10 -   508 hrtime pts/18   00:00:00 test-new

Q3. Wie macht man gute Arbeit mit negativen Werten?

Wie bereits eingangs erwähnt, reichen die Nettigkeitswerte von -20 bis 19, wobei erstere am günstigsten und letztere am günstigsten sind. Falls Sie dem Prozess einen negativen netten Wert zuordnen möchten, müssen Sie einen doppelten Bindestrich verwenden.

Beispiel 

sudo nice --10 ./test-new

Bitte beachten Sie, dass Sie über Root-Rechte verfügen müssen, um einem Prozess einen negativen netten Wert zuzuordnen. Und genau aus diesem Grund sollte Ihr ps-Befehl zur Bestätigung der neuen Nettigkeit 'root' anstelle des anderen Benutzernamens enthalten.

$ ps -lu root | grep test-new

Hier ist die Ausgabe, die dieser Befehl in unserem Fall erzeugt:

4 S 0 7054 7053 0 70 -10 - 508 - pts/18 00:00:00 test-new

Sie können also sehen, dass der Prozess jetzt mit einem schönen Wert von -10 ausgeführt wird.

Q4. Wie addiert man einen festgelegten ganzzahligen Wert zur Nettigkeit?

Sie können den Nice-Wert mit der Befehlszeilenoption -n anpassen, die einen festgelegten Integer-Wert zur Niceness hinzufügt. Standardmäßig ist dieser festgelegte Wert 10, obwohl Sie auch einen anderen Wert übergeben können.

-n, --adjustment=N

Zum Beispiel:

nice --adjustment=5 ./test-new

Und hier ist die Ausgabe, die der ps-Befehl in diesem Fall erzeugt:

0 S 1000 7314 6125 0 85 5 - 508 hrtime pts/18 00:00:00 test-new

Sie können also sehen, dass eine Priorität von 5 festgelegt wurde.

F5. Wie ändere ich die Priorität von laufenden Prozessen?

Während der Nice-Befehl beim Starten von Programmen verwendet wird, können Sie mit dem Renice-Befehl die Priorität eines laufenden Prozesses ändern. So haben wir zum Beispiel die Priorität des bereits laufenden Prozesses „test-new“ von 5 auf 15 geändert.

renice -n 15 -p 7314

Das Argument -p ist für die Prozess-ID. Es folgt die Ausgabe, die der obige Befehl erzeugt hat:

7314 (process ID) old priority 5, new priority 15

Und der nette Wert wurde tatsächlich auf 15 geändert.

F6. Wie ändere ich die Priorität für alle Prozesse, die zu einer Gruppe gehören?

Sie können dafür die Option -g verwenden. Zum Beispiel:

renice -n 20 -g howtoforge

Der obige Befehl ändert die Priorität aller Prozesse, die zur Gruppe „howtoforge“ gehören.

F7. Wie ändere ich die Priorität für alle Prozesse, die einem Benutzer gehören?

Um die Priorität für alle einem Benutzer zugeordneten Programme zu ändern, verwenden Sie die Option -u. Zum Beispiel:

renice -n 5 -u himanshu

Natürlich wird ein normaler Linux-Befehlszeilenbenutzer normalerweise nicht in Situationen geraten, in denen diese Tools benötigt werden, aber es ist immer gut, Kenntnisse über wichtige Befehlszeilentools zu haben, und Nice and Renice gehören dazu. Das Gute ist, dass die damit verbundene Lernkurve überhaupt nicht steil ist. Wir haben hier bereits die meisten Optionen besprochen. Weitere Informationen zu diesen Dienstprogrammen finden Sie auf ihren Manpages – hier und hier.


Linux
  1. Linux-Cat-Befehl:Verwendung und Beispiele

  2. Linux-Befehle – Übersicht und Beispiele

  3. 7 Beispiele für Linux-df-Befehle

  4. mkdir- und rmdir-Befehlsbeispiele unter Linux

  5. sa-Befehlsbeispiele in Linux

Linux-nm-Befehls-Tutorial für Anfänger (10 Beispiele)

Linux OD Command Tutorial für Anfänger (6 Beispiele)

Linux w Command Tutorial für Anfänger (5 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)

Befehlsoptionen und Beispiele für den Tee-Befehl in Linux

id-Befehlsbeispiele in Linux