Einem bestimmten Prozess standardmäßig eine höhere Priorität zuweisen

Einem bestimmten Prozess standardmäßig eine höhere Priorität zuweisen

Ich möchte mein Linux-Desktopsystem so konfigurieren, dass jedes Mal, wenn ich ein bestimmtes Programm starte (die Prozesse dieses Programms ausführe), dem entsprechenden Prozess eine hohe Priorität zugewiesen wird. Wie geht das?

Mir ist bewusst, dass ich dies für jede Ausführung des Programms einzeln tun kann, also für bestimmte Prozesse. Aber wie konfiguriere ich einen Standard für das Programm (also für alle zukünftigen Prozesse)?

Kernelversion: 4.10.11-200.fc25.x86_64

Antwort1

Es gibt ein Programm namens "Auto-Nice-Daemon", das dies tut. Es läuft im Hintergrund und wenn ein Prozess, der einem bestimmten Muster entspricht, in der Prozesstabelle erscheint, legt es seine Nettigkeit automatisch fest.

Sie können dies verwenden – aber Sie könnten ein wenig enttäuscht sein, da der Linux-Scheduler viel ausbalancieren muss und eine höhere Priorität nicht unbedingt einen magischen Geschwindigkeitsschub bringt. Sie können sogar in Situationen geraten, in denen es die Dinge erschwertschlechter, weil Ihr Prozess mit hoher Priorität möglicherweise Prozesse mit niedrigerer Priorität „aushungert“, obwohl dies für die Fortführung Ihrer Anwendung tatsächlich erforderlich sein könnte.

Stattdessen könnten Sie sich etwas wie Folgendes ansehen:abgestimmt, das über Leistungsprofile für eine Vielzahl unterschiedlicher Arbeitslasten verfügt.Oder, wenn Sie abenteuerlustig sind, können Sie sich ansehenMit Kolivas Desktop Scheduler-Patches, die darauf abzielen, das Desktop-Erlebnis zu optimieren. Dies ist wirklich schwer zu messen und etwas umstritten – viele Leute schwören darauf, während andere skeptisch sind. (Es gibt einen Linux Weekly News-Artikel über die neueste Version unterDer MuQSS CPU-Scheduler– derzeit hinter einer Paywall, wird aber am 4. Mai kostenlos sein.)

Antwort2

Sie werden einen Blick auf dieHübschUndreniceDienstprogramme. Um Ihrem Prozess eine höhere CPU-Priorität zu geben, müssen Sie über Root-/Sudo-Berechtigungen verfügen. Sie können entweder verwenden, niceum den Prozess mit einer höheren Priorität zu starten, oder reniceihn nachträglich auf eine höhere Priorität ändern.

(terminal1):~# nice -n -10 sleep 100
(terminal2):~# top -b -n1 | grep sleep
23580 root      10 -10    4508   1244   1156 S 0.000 0.008   0:00.00 sleep
(terminal1):~# sleep 100
(terminal2):~# top -b -n1 | grep sleep
23888 root      20   0    4508   1316   1228 S 0.000 0.008   0:00.00 sleep
(terminal2):~# renice -n -10 23888
23888 (process ID) old priority 0, new priority -10
(terminal2):~# top -b -n1 | grep sleep
23888 root      10 -10    4508   1356   1268 S 0.000 0.008   0:00.00 sleep

verwandte Informationen