Запустить процесс с более высоким приоритетом

14

Я хочу работать mplayerс более высоким приоритетом, чем любые другие процессы, в том числе IO-процессы. Как я могу это сделать?

SHW
источник
На этот вопрос нет кросс-юниксного варианта ответа. В целом, лучше описать, какую ОС вы используете (включая дистрибутив для Linux, но здесь это не будет иметь большого значения, если вообще будет). Я добавил linuxтег, пожалуйста, измените его, если это не то, что вы используете.
Жиль "ТАК - перестань быть злым"
Вы не возражаете, если я спрошу, почему вы хотите повысить приоритет mplayer? Я спрашиваю, потому что раньше у меня были проблемы с повышением приоритета mplayer, эффект был противоположен тому, что я пытался достичь, потому что mplayer занимал бы процессорное время, выполняя очистку после производства, а затем останавливался, когда сеть наконец вздохнул воздух, чтобы захватить больше контента, затем mplayer заикался, просто чтобы снова остановиться, ожидая сети.
убийца
Я спросил это дело, я играю фильм через mplayer. Всякий раз, когда я пытаюсь загрузить несколько файлов ГБ по сети. Mplayer наблюдает за нарезкой и рывком во время игры.
SHW

Ответы:

16

Для установки добротности (привязки к процессору) используйте nice. Для установки IO-близости (IO-связанный) используйте ionice. Обратитесь к соответствующим страницам справки для получения дополнительной информации. Вы можете использовать их вместе следующим образом:

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

Примечание: самый низкий уровень любезности (более низкий означает более благоприятный), который вы можете определить, определяется limits.conf. На моем компьютере файл находится по адресу /etc/security/limits.conf.

phunehehe
источник
1
Упоминание классов io-планировщика - это хорошо, потому что это может быть важным фактором. Ничего не стоит, что для среднего -c2класса планирования процессы по умолчанию сортируются по хорошему уровню, поэтому приведенная вами примерная команда действительно не нужна. Можно попробовать поместить mplayer в -c1класс в реальном времени. (С правами суперпользователя.)
mattdm
7

В целом, как пользователь без полномочий root, вы можете только уменьшить приоритет своих задач, но не увеличивать их. Таким образом, одним из подходов будет снижение приоритета всего остального. Или вы можете настроить что-то на системном уровне, которое будет отвечать вашим приоритетам.

Если вы используете относительно современный дистрибутив Linux, самый мощный способ - использовать контрольные группы . Это находится в зачаточном состоянии, поэтому в основном вам придется настраивать все вручную, но вкратце вам нужно настроить классификатор так, чтобы разные процессы были распределены по разным группам управления процессором, а затем дать процессу mplayer больше общих ресурсов процессора.

mattdm
источник