Wie Prozess-Prioritäten Setzen Mit nice und renice auf Linux

0
45

Die nice und renice Befehle können Sie optimieren, wie behandelt der kernel intern Ihre Prozesse durch die Anpassung Ihrer Prioritäten. Lesen Sie dieses tutorial, um zu erfahren, wie Sie in Linux-und Unix-ähnlichen Betriebssystemen wie macOS.

Es ist Alles eine Frage des Prozesses

In Ihrem Linux-oder Unix-like computer, wird es viele Prozesse ausgeführt werden, noch bevor Sie starten Sie die Anwendung, die Sie verwenden möchten. Die meisten dieser Prozesse sind zentrale Elemente von Linux selbst oder unterstützende Prozesse für die grafische desktop-Umgebung. Es gibt eine Menge Los hinter den kulissen. Natürlich, es gibt nur so viele system-Ressourcen und CPU-Zeit um zu gehen. Der Linux-kernel ist der controller für alle diese Prozesse.

Es ist der kernel, der hat zu entscheiden, welche Prozesse die Aufmerksamkeit und die Mittel gerade jetzt, und welche warten müssen. Der kernel ist ständig jonglieren-Prozesse und Prioritäten um sicherzustellen, dass der computer läuft so reibungslos wie möglich verläuft und dass alle Prozesse Ihren entsprechenden Anteil. Einige Prozesse bekommen eine bevorzugte Behandlung. Sie sind so wichtig für die Allgemeine Bedienung des Computers, der Ihre Bedürfnisse müssen an Erster Stelle vor, sagen wir, Ihren browser.

Der nice-Wert

Eines der Kriterien verwendet, um zu bestimmen, wie der kernel behandelt einen Prozess den nice-Wert. Jeder Prozess hat einen nice-Wert. Der nice-Wert ist eine ganze Zahl im Bereich von -19 bis 20. Alle standard-Prozesse sind gestartet mit einem nice-Wert von null.

Der trick hier ist, dass je höher der nice-Wert, desto besser ist Ihr Prozess an die anderen Prozesse. In anderen Worten, bei einem hohen nice-Wert sagt dem kernel, dass dieser Prozess glücklich zu warten. Eine negative Zahl ist das Gegenteil von nett sein. Je größer die negativen nice-Wert ist, desto egoistischer ist der Prozess. Es ist zu versuchen, so viel CPU-Zeit, wie Sie können, ohne Rücksicht auf die anderen Prozesse.

Wir können den netten Befehl der nice-Wert, wenn ein Prozess gestartet wird und wir können mit renice zum einstellen der nice-Wert eines Laufenden Prozesses.

Der nice-Befehl

Wir können mit dem nice-Befehl zum einstellen der nice-Wert für ein Programm, wie wir es starten. Dies erlaubt uns zu erhöhen oder verringern Sie die Priorität des Prozesses durch den kernel, im Vergleich zu den anderen Prozessen.

Nehmen wir an, ein Programmierer hat ein Programm geschrieben, namens ackermann . Dieser berechnet Ackerman Funktionen. Es ist ein CPU-und Speicher-intensiv. Der Programmierer kann starten Sie das Programm mit dem folgenden Befehl:

./ackermann

Wir können die top-Befehl aus, um die laufen Programm.

top

Wir können sehen, die details des ackermann-Programm in top. Der nice-Wert ist die Abbildung in der “NI-Spalte”. Es auf null gesetzt, als wir erwarten würden.

Lasst uns neu starten, und diesmal ist es weniger anspruchsvoll. Wir mit Ihnen einen nice-Wert von 15 für die ackermann-Programm wie folgt. Typ, nett, ein Raum, -15, ein weiteres Leerzeichen und dann den Namen des Programms, das Sie starten möchten. In unserem Beispiel fiktive Programmierer mittels ./ackermann.

schöne -15 ./ackermann

Zu beachten ist, das “-15” ist nicht negativ, fünfzehn. Es ist positiv, fünfzehn. Die “-” erforderlich ist, um zu sagen, schön, wir sind die übergabe-parameter. Um anzugeben, dass eine negative Zahl, die Sie eingeben müssen zwei “-” Zeichen.

Wenn wir jetzt beginnen Sie wieder, können wir sehen, die änderung in das Verhalten von ackermann.

top

Mit einem nice-Wert von 15, ackermann wird nicht verbraucht die meiste CPU-Zeit. Die GNOME Rhythmbox verwenden beide mehr. Wir haben gezügelt ackermann in einem bit.

Jetzt machen wir das Umgekehrt und ackermann geben Sie einen negativen nice-Wert. Beachten Sie die Verwendung von zwei “-” Zeichen. Einen Antrag stellen, mehr egoistisch und weniger schöne, müssen Sie sudo verwenden. Kann jeder machen, Ihre Anwendung mehr schön, aber nur Superuser können eine mehr egoistisch.

sudo nice –10 ./ackermann

Wir führen top und sehen, welchen Unterschied das gemacht hat.

top

Dieses mal ackermann hat einen nice-Wert von -10. Es ist wieder an der oberen Linie und verbraucht mehr CPU-Zeit als zuvor.

Die renice Befehl

Die renice-Befehl ermöglicht es uns, passen Sie den nice-Wert eines Laufenden Prozesses. Wir brauchen nicht zu stoppen, und starten Sie es mit Nizza. Wir können einen neuen Wert on-the-fly.

Die renice Befehl nimmt die Prozess-ID oder PID, der den Prozess als Kommandozeilen-parameter. Wir können entweder die Prozess-ID von der “PID” – Spalte in der Spitze , oder können wir mit ps und grep, um finden es für uns wie folgt. Natürlich werden Sie geben Sie den Namen des Benutzers anstelle von dave und den Namen des Prozesses, der Sie interessiert, anstatt von ackermann.

ps -eu dave | grep ackermann

Jetzt haben wir die PID das können wir mit renice. Wir setzen ackermann zurück, um ein schöneres Verhalten mit einem nice-Wert von fünf. Ändern Sie den nice-Wert für einen Laufenden Prozess müssen Sie sudo verwenden. Beachten Sie, dass es keine “-” auf der 5 parameter. Sie brauchen nicht ein für positive zahlen, und Sie brauchen nur ein, nicht zwei, für negative zahlen.

sudo renice -n 5 2339

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

Der kernel in der Regel macht einen guten job der Umgang mit Prioritäten und Ausgabe CPU-Zeit und Systemressourcen. Aber wenn Sie haben einen langen, CPU-intensive Aufgabe, zu führen und Sie nicht kümmern, wenn er zu dem Schluss, werde es machen Sie Ihren computer laufen ein wenig glatter, wenn Sie einen höheren nice-Wert für diese Aufgabe. Das wird schöner für alle.