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

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

Im Unix-Ökosystem ist ein Prozess ein laufendes Programm. Jedes Programm, das auf Ihrer Linux-Box läuft, ist also ein Prozess. Ein oder mehrere Prozesse können gleichzeitig auf Ihrer Linux-Box ausgeführt werden. Wir können die Informationen über aktive Prozesse mit ps anzeigen Befehl. Standardmäßig zeigt der Befehl ps nur die Prozesse des aktuellen Benutzers an. Sie können den Befehl "ps -ef" (natürlich ohne Anführungszeichen) verwenden, um alle Prozesse anzuzeigen. Um den Benutzer eines Prozesses anzuzeigen, verwenden wir "ps -u". Ich hoffe, Sie haben eine grundlegende Vorstellung von Linux-Prozessen. Kommen wir nun zum heutigen Thema - wie man die Priorität eines Prozesses unter Linux mit nice ändert und renice Befehle.

Wie Sie vielleicht wissen, betrachtet der Linux-Kernel standardmäßig alle Prozesse als gleich wichtig und weist jedem Prozess die gleiche Menge an CPU-Zeit zu. Manchmal möchten Sie möglicherweise die Priorität bestimmter Prozesse erhöhen oder verringern, um mehr CPU-Zeit zu nutzen. Hier helfen die Befehle nice und renice. Der Nice-Befehl wird verwendet, um einen Prozess mit einer benutzerdefinierten Priorität auszuführen, während der Renice-Befehl verwendet wird, um die Priorität eines laufenden Prozesses zu ändern. Im Allgemeinen werden nice- und renice-Befehle verwendet, um die Priorität gegenüber der Standardpriorität eines Prozesses zu ändern.

Ändern Sie die Priorität eines Prozesses mit dem Nice-Befehl

Die Standardpriorität eines Prozesses anzeigen

Immer wenn ein Prozess normal startet, erhält er den Standardprioritätswert von Null .

Wir verwenden das cmus-Programm , ein Befehlszeilen-Media-Player für die Zwecke dieses Handbuchs.

Lassen Sie uns es mit dem Befehl ausführen:

$ cmus &

Hinweis: Wenn ein Befehl durch den Kontrolloperator & beendet wird , führt die Shell den Befehl im Hintergrund in einer Subshell aus.

Sehen wir uns nun die laufenden Prozesse mit dem Befehl:

an
$ ps -al

Beispielausgabe:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 13829 13704 0 80 0 - 39431 signal pts/0 00:00:00 cmus
0 R 1000 13848 13704 0 80 0 - 8148 - pts/0 00:00:00 ps

Zeigen Sie laufende Prozesse mit dem Befehl ps an

Wie Sie in der obigen Ausgabe sehen, wird der Nettigkeitswert unter der Spaltenüberschrift "NI" aufgeführt . Es ist also klar, dass alle Prozesse den Standardprioritätswert von Null erhalten.

Starten Sie einen Prozess mit einem netten Dienstprogramm

Wenn Sie einen Prozess mit einem netten Befehl ohne Argumente starten, erhält er den Standardwert von 10 . Hier 10 ist der Nettigkeitswert oder die Priorität. Die Netness-Werte reichen von -20 (am günstigsten für den Prozess) bis 19 (am ungünstigsten für den Prozess). Einfach ausgedrückt:Negative Werte (z. B. -20) geben einem Prozess eine höhere Priorität und positive Werte (z. B. 19) eine niedrigere Priorität.

Stoppen wir nun das laufende Programm cmus mit dem Befehl:

$ kill -9 13829

Hier ist 13829 die PID des cmus-Programms. Sie sehen diesen Wert unter der Überschrift "PID" in der obigen Ausgabe.

Führen Sie jetzt das cmus-Programm mit dem Hilfsprogramm „nice“ aus.

$ nice cmus &

Überprüfen Sie die laufenden Prozesse mit dem Befehl:

$ ps -al

Beispielausgabe:

 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
 0 T 1000 13957 13704 0 90 10 - 55815 signal pts/0 00:00:00 cmus
 0 R 1000 13985 13704 0 80 0 - 8148 - pts/0 00:00:00 ps

Starten Sie einen Prozess mit einem netten Dienstprogramm

Sehen Sie, jetzt hat der cmus-Prozess den Standardwert für die Nettigkeit von 10 , was bedeutet, dass seine Priorität geändert wurde.

Starten Sie einen Prozess mit nettem Dienstprogramm mit niedrigerer Priorität

Sie können den gleichen Vorgang auch mit einem bestimmten Nettigkeitswert starten, zum Beispiel 15 , wie unten.

Beenden Sie den Prozess mit dem Kill-Befehl:

$ kill -9 13957

Starten Sie den Prozess erneut mit einem Nettigkeitswert von 15:

$ nice -15 cmus &

Hinweis: Verwechseln Sie hier nicht - (Bindestrich) mit Minus. Wir verwenden - (Bindestrich), um einen Wert zu übergeben. Um einen positiven Wert zuzuweisen, verwenden wir daher -15. Ebenso verwenden wir zum Zuweisen eines negativen Werts --15 (d. h. doppelter Bindestrich).

Lassen Sie uns den Niceness-Wert mit dem Befehl ps -al überprüfen:

$ ps -al

Beispielausgabe:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 14060 13704 0 95 15 - 55815 signal pts/0 00:00:00 cmus
0 R 1000 14069 13704 0 80 0 - 8148 - pts/0 00:00:00 ps

Starten Sie einen Prozess mit nettem Dienstprogramm mit niedrigerer Priorität

Sehen Sie, jetzt hat der cmus-Prozess den Niceness-Wert von 15.

In den obigen Beispielen haben wir die Prozesse mit niedrigerer Priorität gestartet. Denken Sie daran, dass ein positiver Nettigkeitswert eine niedrigere Priorität darstellt .

Starten Sie einen Prozess mit dem Nice-Dienstprogramm mit höherer Priorität

Sie wissen bereits, dass ein negativer Nettigkeitswert eine höhere Priorität darstellt. Bitte beachten Sie, dass normale Benutzer keinen Prozess mit höherer Priorität starten dürfen. Sie müssen Root-Benutzer sein, um Prozesse mit höherer Priorität zu starten .

Also, um einen Prozess mit einem netten Dienstprogramm mit niedrigerer Priorität zu starten, zum Beispiel -15 , führen Sie den folgenden Befehl aus:

# nice --15 cmus &

Beispielausgabe:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 14331 14306 0 80 0 - 20531 poll_s pts/0 00:00:00 sudo
4 S 0 14332 14331 0 80 0 - 13796 wait pts/0 00:00:00 su
4 S 0 14333 14332 0 80 0 - 5736 wait pts/0 00:00:00 bash
4 T 0 14358 14333 0 65 -15 - 55643 signal pts/0 00:00:00 cmus
0 R 0 14366 14333 0 80 0 - 8148 - pts/0 00:00:00 ps

Starten Sie einen Prozess mit dem Nice-Dienstprogramm mit höherer Priorität

Prozesse mit Option -n starten

Sie können auch -n verwenden Option zum Erhöhen oder Verringern der Priorität.

Um die Priorität zu erhöhen, führen Sie den folgenden Befehl als root aus Benutzer:

# nice -n -15 cmus &

Um die Priorität zu verringern, führen Sie den folgenden Befehl normal aus Benutzer:

$ nice -n 15 cmus &
Herunterladen - Kostenloses eBook:"Amazon S3 Tutorial"

Ändern Sie die Priorität eines laufenden Prozesses mit dem Renice-Befehl

Was wir bisher gesehen haben, ist, dass wir einen Prozess mit einer benutzerdefinierten Priorität gestartet haben. Jetzt ändern wir die Priorität eines laufenden Prozesses mit dem Befehl renice.

Sehen wir uns die laufenden Prozesse mit dem Befehl:

an
$ ps -al

Beispielausgabe:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 15059 14306 0 95 15 - 55815 signal pts/0 00:00:00 cmus
0 R 1000 15066 14306 0 80 0 - 8148 - pts/0 00:00:00 ps

Wie Sie in der obigen Ausgabe sehen, läuft cmus mit einem niedrigeren Prioritätswert von 15.

Um den aktuellen Niceness-Wert eines laufenden Prozesses zu ändern, zum Beispiel 18 , führen Sie den folgenden Befehl aus:

$ renice -n 18 -p 15059

Hier, 15059 ist die Prozess-ID des cmus-Prozesses.

Beispielausgabe wäre:

15059 (process ID) old priority 15, new priority 18

Überprüfen Sie den Niceness-Wert mit dem Befehl:

$ ps -al

Beispielausgabe:

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 T 1000 15059 14306 0 98 18 - 55815 signal pts/0 00:00:00 cmus
0 R 1000 15074 14306 0 80 0 - 8148 - pts/0 00:00:00 ps

Um ihn in einen negativen Niceness-Wert zu ändern (um eine höhere Priorität zuzuweisen), führen Sie den folgenden Befehl als root aus Benutzer:

# renice -n -20 -p 14749

Sie können sogar die Prioritäten aller laufenden Gruppen ändern, die zu einer bestimmten Gruppe gehören, wie unten beschrieben.

# renice -n -20 -g ostechnix

Der obige Befehl ändert die Priorität aller laufenden Prozesse, die zu einer Gruppe namens ostechnix gehören .

Außerdem können Sie die Priorität des laufenden Prozesses ändern, der einem bestimmten Benutzer gehört, zum Beispiel sk , mit dem Befehl:

# renice -n -20 -u sk

Für weitere Optionen empfehle ich Ihnen, die Manpages der Hilfsprogramme nice und renice zu konsultieren.

$ man nice
$ man renice

Empfohlene Lektüre:

  • Wie man herausfindet, wie lange ein Prozess unter Linux läuft
  • So zeigen Sie Prozessinformationen mit Procs unter Linux an

Ich hoffe, Sie haben eine grundlegende Vorstellung davon, was ein Linux-Prozess ist und wie Sie seine Priorität mit netten und netten Dienstprogrammen ändern können. Ich hoffe, es hilft.


Linux
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den Verlaufsbefehl unter Linux

  3. So ändern Sie das Passwort unter Linux (passwd-Befehl)

  4. So ändern Sie die Identität eines Linux-Systems

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

So ändern Sie die Ausgabefarbe von „Echo“ in Linux

Wie man einen Prozess unter Linux beendet

So verwenden Sie den fd-Befehl auf einem Linux-System

Wie verwende ich den wget-Befehl unter Linux?

So ändern Sie das Root-Passwort unter Linux

Wie verwende ich den xargs-Befehl unter Linux?