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

So ändern Sie die Prozesspriorität mithilfe von Linux Nice- und Renice-Beispielen

Jedem laufenden Prozess in Unix ist eine Priorität zugeordnet.

Sie können die Prozesspriorität mit den Dienstprogrammen nice und renice ändern. Der Nice-Befehl startet einen Prozess mit einer benutzerdefinierten Planungspriorität. Der Renice-Befehl ändert die Scheduling-Priorität eines laufenden Prozesses.

Der Linux-Kernel plant den Prozess und weist jedem von ihnen entsprechend CPU-Zeit zu. Wenn jedoch einer Ihrer Prozesse eine höhere Priorität benötigt, um mehr CPU-Zeit zu erhalten, können Sie den Befehl nice und renice verwenden, wie in diesem Tutorial erklärt.

Der Prioritätsbereich der Prozessplanung liegt zwischen -20 und 19. We Nennen Sie dies einen netten Wert.

Ein netter Wert von -20 stellt die höchste Priorität dar, und ein netter Wert von 19 die niedrigste Priorität für einen Prozess.

Wenn ein Prozess gestartet wird, erhält er standardmäßig die Standardpriorität 0.

1. Anzeige des netten Werts eines Prozesses

Die aktuelle Priorität eines Prozesses kann mit dem Befehl ps angezeigt werden.

Die Spalte „NI“ in der Ausgabe des ps-Befehls zeigt den aktuellen netten Wert (d. h. die Priorität) eines Prozesses an.

Wir werden ein Testprogramm namens test.pl starten, das verwendet wird, um den Befehl nice and renice zu demonstrieren. Dieses Testprogramm erledigt bestimmte Aufgaben und läuft eine Weile.

$ perl test.pl

Wenn Sie den ps-Befehl wie unten gezeigt ausführen, können Sie feststellen, dass dieses test.pl-Programm den netten Standardwert 0 hat (sehen Sie sich die NI-Spalte in der folgenden Ausgabe an).

$ ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 R bala 6884  6424 99  80   0 -  1556 -      13:45 pts/3    00:05:54 perl test.pl

2. Starten Sie ein Programm mit geringerer Priorität

Anstatt das Programm mit der Standardpriorität zu starten, können Sie den netten Befehl verwenden, um den Prozess mit einer bestimmten Priorität zu starten.

In diesem Beispiel wird test.pl mit einem netten Wert von 10 gestartet.

$ nice -10 perl test.pl

Hinweis: Denken Sie daran, dass -10 im obigen Befehl die Priorität eines Prozesses auf 10 setzt. Der Befehl – ​​in nice steht für den Bindestrich, den wir verwenden, um Optionen an den Befehl zu übergeben.

Um also den netten Wert 5 zu übergeben, sagen Sie -5. Um einen netten Wert von 6 zu übergeben, sagen Sie -6.

Wie Sie unten sehen, wird dieses Programm jetzt mit einem netten Wert von 10 gestartet, was bedeutet, dass es im Vergleich zu anderen Programmen, die standardmäßig gestartet werden, mit einer niedrigeren Priorität ausgeführt wird.

$ ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 R bala 7044  6424 99  90  10 -  1556 -      13:58 pts/3    00:00:03 perl test.pl

3. Starten Sie ein Programm mit hoher Priorität

Sie können auch ein Programm mit höherer Priorität starten. Ein negativer Nice-Wert erhöht die Priorität des Prozesses. Daher muss der Wert mit einem — (zwei Bindestriche) vor dem netten Befehl angegeben werden, wie unten gezeigt.

# nice --10 perl test.pl

Um also den netten Wert von -5 zu übergeben, fügen Sie zwei Bindestriche vor 5 ein. Um den netten Wert von -6 zu übergeben, fügen Sie zwei Bindestriche vor der 6 hinzu.

Wie Sie unten sehen, wird dieses Programm jetzt mit einem netten Wert von -10 gestartet, was bedeutet, dass es im Vergleich zu anderen Programmen, die standardmäßig gestartet werden, mit einer höheren Priorität ausgeführt wird.

# ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 R root 3534  3234 99  70 -10 -  1557 ?      19:06 pts/1    00:00:56 perl test.pl

Hinweis:Normale Benutzer dürfen kein Programm mit höherer Priorität starten. Nur der Root-Benutzer darf ein Programm mit hoher Priorität starten.

Wenn Sie als normaler Benutzer die Priorität erhöhen, erhalten Sie die folgende Fehlermeldung von nice command.

$ nice --10 perl test.pl
nice: cannot set niceness: Permission denied

Beachten Sie, dass das Programm nach dem Drucken der obigen Fehlermeldung weiterhin mit der Standardpriorität (d. h.:0) ausgeführt wird.

4. Ändern Sie die Priorität mit der Option -n

Die Prozesspriorität kann mit Hilfe der Option -n angepasst werden.

Priorität erhöhen:

# nice -n -5 perl test.pl

Verringern Sie die Priorität:

# nice -n 5 perl test.pl

5. Ändern Sie die Priorität eines laufenden Prozesses

Die Priorität eines bereits laufenden Prozesses kann mit dem Befehl renice geändert werden.

In diesem Beispiel läuft das Programm test.pl bereits mit einem netten Wert von -10.

# ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 R root 3534  3234 99  70 -10 -  1557 ?      19:06 pts/1    00:00:56 perl test.pl

Wir können den Nice-Wert des obigen Programms wie unten gezeigt auf -19 ändern. Übergeben Sie die Prozess-ID des obigen Programms an die Option -p.

# renice -n -19 -p 3534

Stellen Sie sicher, dass der Nice-Wert auf -19 geändert wurde.

# ps -fl -C "perl test.pl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 R root 3534  3234 99  70 -19 -  1557 ?      19:06 pts/1    00:00:56 perl test.pl

6. Ändern Sie die Priorität aller Prozesse, die zu einer Gruppe gehören

Mit der Option -g können Sie die Priorität aller Prozesse ändern, die zu einer Gruppe gehören. Der folgende Befehl ändert den netten Wert aller Prozesse, die zu geekstuff gehören, auf 5.

# renice -n 5 -g geekstuff

7. Ändern Sie die Priorität aller Prozesse im Besitz des Benutzers

Renice ermöglicht es, die Priorität aller Prozesse zu ändern, die einem bestimmten Benutzer gehören, wie unten gezeigt.

# renice -n 5 -u bala

Der obige Befehl ändert die Priorität aller Prozesse, die dem Benutzer bala gehören. Es wird allen Prozessen, die dem Benutzer bala gehören, einen netten Wert von 5 zuweisen.

# ps -fl -C "perl"
F S UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 R bala 2720  2607 99  85   5 -  1556 -      14:34 pts/2    00:05:07 perl test.pl
0 R bala 2795  2661 99  85   5 -  1556 -      14:39 pts/3    00:00:09 perl 2.pl

Linux
  1. Linux nice and renice Command Tutorial (7 Beispiele)

  2. So beschleunigen Sie den Linux-Startvorgang mithilfe von Startpar-Befehlsbeispielen

  3. UNIX / Linux :Wie man die Nettigkeit (Priorität) eines Prozesses ändert

  4. renice-Befehlsbeispiele in Linux

  5. nette Befehlsbeispiele in Linux

So ändern Sie die Priorität eines Prozesses in Linux

So unterbrechen Sie einen Prozess und setzen ihn später in Linux fort

Nice and Renice – Setzen Sie die Prozesspriorität in Linux

7 Beispiele zum Verwalten des Ablaufs und der Alterung von Linux-Passwörtern mit chage

So beenden Sie Prozesse in Linux mit kill, killall und pkill

So verfolgen und verfolgen Sie einen Linux-Prozess