Sie können renice einen laufenden Prozess , um ihn mehr oder weniger Priorität (die so genannten „nice value“). Beachten Sie, dass die UNIX-Prioritätsskala etwas kontraintuitiv ist: Negative Werte bedeuten, dass ein Prozess gegenüber gleichzeitigen Prozessen bevorzugt wird, dh "mehr" Priorität hat.
Sie können also versuchen, Ihren Prozess aufgrund seiner PID zu "verlangsamen" durch:
# lower priority of a process
renice +1 "PID"
Jedes Mal, wenn Sie dies ausführen, wird der Prozess "nice value" um 1 erhöht. Sie können andere als +1
natürlich ganzzahlige Werte verwenden .
Mit dem Befehl nice können Sie einen Prozess mit einer +10 nice value-Anpassung starten (ändern Sie dies mit der Option -n
). Zum Beispiel:
# start a CPU-intensive task with low priority
nice ./cpu-hog
Der "nette Wert" wirkt sich jedoch nur darauf aus, wie sehr der Scheduler die Ausführung eines bestimmten Prozesses gegenüber anderen im System bevorzugt: Wenn Ihr Computer im Grunde genommen im Leerlauf ist, wird durch Erhöhen des "netten Werts" eines einzelnen Prozesses nicht verhindert , dass dieser Prozess 100% dauert ZENTRALPROZESSOR. Ich zitiere aus der Manpage getpriority (2) : (Hervorhebung von mir hinzugefügt.)
Das Ausmaß, in dem sich ihr relativer Wert auf die Planung von Prozessen auswirkt, variiert zwischen Unix-Systemen und unter Linux zwischen Kernelversionen. Beginnend mit Kernel 2.6.23 hat Linux einen Algorithmus übernommen, der bewirkt, dass relative Unterschiede in netten Werten einen viel stärkeren Effekt haben. Dies führt dazu, dass sehr niedrige nette Werte (+19) einem Prozess wirklich wenig CPU zur Verfügung stellen, wenn
das System eine andere Last mit höherer Priorität hat.
Der Grund dafür liegt in der Art und Weise, wie Prozesse auf einem UNIX-ähnlichen Kernel ausgeführt werden: Jedes Mal, wenn der Kernel einen Prozess ausführt, hat dieser Prozess für einen bestimmten (festen und kurzen) Zeitraum die volle Kontrolle über einen CPU-Kern. Der "nette Wert" kann beeinflussen, wie oft der Kernel-Scheduler bereit ist, einem Prozess ein Zeitfenster zuzuweisen. Sie können jedoch nicht die Tatsache ändern, dass ein Prozess nach dem Planen für einen festgelegten Zeitraum ungestört ausgeführt wird.
Wenn Sie Ihre CPU nicht verlangsamen, kann ein Prozess daher nicht langsamer ausgeführt werden, wenn keine anderen Prozesse im System vorhanden sind, die um den CPU-Zugriff kämpfen können.