Prozess mit höherer Priorität ausführen


14

Ich möchte mplayermit höherer Priorität als alle anderen Prozesse ausgeführt werden, einschließlich der IO-Prozesse. Wie kann ich das machen?


Es gibt keine unixübergreifende Antwort auf diese Frage. Im Allgemeinen ist es besser zu beschreiben, welches Betriebssystem Sie verwenden (einschließlich der Distribution für Linux, aber hier spielt es keine Rolle, wenn überhaupt). Ich habe ein linuxTag hinzugefügt . Bitte ändern Sie es, wenn Sie es nicht verwenden.
Gilles 'SO - hör auf böse zu sein'

Stört es Sie, wenn ich Sie frage, warum Sie die Priorität von mplayer erhöhen möchten? Ich frage, weil ich zuvor Probleme hatte, bei denen die Priorität von mplayer erhöht wurde, und der Effekt dem entgegengesetzt war, was ich erreichen wollte, da mplayer die CPU-Zeit für die Reinigung nach der Produktion in Anspruch nehmen und dann als Netzwerk endgültig zum Stillstand kommen würde Ich schnappte nach Luft, um mir mehr Inhalte zu schnappen, dann stotterte der Player wieder, nur um wieder anzuhalten und auf das Netzwerk zu warten.
Killermist

Ich habe aus diesem Grund gefragt, ob ich einen Film über mplayer abspiele. Immer wenn ich versuche, ein paar GB-Dateien über das Netzwerk herunterzuladen. Mplayer beobachtet beim Spielen ein Aufschneiden und einen Ruck.
SHW

Antworten:


16

Verwenden Sie diese Option, um die Genauigkeit (CPU-gebunden) festzulegen nice. Verwenden Sie diese Option, um die E / A-Empfindlichkeit (E / A-gebunden) festzulegen ionice. Weitere Informationen finden Sie auf den jeweiligen Manpages. Sie können sie wie folgt zusammen verwenden:

ionice -c 2 -n 0 nice -n -20 mplayer

Hinweis: Der niedrigste von Ihnen definierbare Grad an Feinheit (niedriger bedeutet günstiger) wird durch festgelegt limits.conf. Auf meinem Computer befindet sich die Datei unter /etc/security/limits.conf.


1
Es ist gut, die io-Scheduler-Klassen zu erwähnen, da dies wahrscheinlich ein wichtiger Faktor ist. Es ist nichts wert, dass die -c2Prozesse für die mittlere Scheduling-Klasse standardmäßig nach der netten Ebene sortiert sind, sodass der Beispielbefehl, den Sie angegeben haben, wirklich nicht erforderlich ist. Man könnte versuchen, mplayer in die -c1Echtzeitklasse aufzunehmen. (Mit root-Zugang.)
mattdm

7

Im Allgemeinen können Sie als Nicht-Root-Benutzer die Priorität Ihrer Aufgaben nur verringern, nicht jedoch erhöhen. Ein Ansatz wäre also, die Priorität von allem anderen zu senken. Oder Sie können auf Systemebene etwas einrichten, das Ihre Prioritäten berücksichtigt.

Wenn Sie eine relativ moderne Linux-Distribution verwenden, ist die Verwendung von Kontrollgruppen die leistungsstärkste Methode . Dies steckt noch in den Kinderschuhen, sodass Sie im Grunde genommen alles von Hand konfigurieren müssen. Kurz gesagt, Sie möchten das Kategorisierungsmodul so konfigurieren, dass verschiedene Prozesse in verschiedene CPU-Steuerungsgruppen eingeteilt werden und der mplayer-Prozess dann mehr CPU-Freigaben erhält.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.