Можно ли ограничить мощность процессора?

16

Мне интересно, есть ли способ сказать процессу, сколько процессорной мощности это может занять?

Проблема в том, что я конвертирую видео с помощью Arista (конвертер видео), и меня раздражает, что вентилятор работает как сумасшедший, когда я смотрю на монитор задач, он занимает более 92% процессорного времени.

Могу ли я (как-то) сказать, что это может занять всего 20%?

Благодарность

equivalent8
источник

Ответы:

20

Существует инструмент cpulimit (также присутствует в репозитории Debian и должен быть в других дистрибутивах).

Его использование довольно просто:

cpulimit -p PID -l MAX_CPU_LEVEL

Вы также можете использовать имя процесса или полный путь к двоичному файлу. Подробности вы можете найти на странице руководства .

порыв
источник
1
ха-ха :), работает отлично, спасибо +1
эквивалент8
3
Код по указанному URL не обновлялся уже довольно давно. Другая группа подняла его и продолжила разработку на limitcpu.sf.net .
Джеймс Снерингер
7

Другой способ - использовать (относительно) новый интерфейс ядра, называемый cgroups (статья в Википедии здесь ). Это позволяет более точно контролировать, сколько процессоров / памяти / io / и т. Д. Процесс / пользователь / группа может использовать.

Томми
источник
0

Хотя это может быть не совсем то, что вы ищете, вы можете использовать reniceпрограмму, чтобы изменить приоритет программы, чтобы она не замедляла работу других приложений в системе. renice -n 20 -p [pid]где замена [pid] идентификатором процесса Arista, вероятно, снизит использование ресурсов и определенно уменьшит замедление работы системы.

повторно cursion
источник
1
ОП не жалуется на процесс, замедляющий работу других приложений, а на то, что вентилятор работает как сумасшедший, reniceничего не может с этим поделать. В лучшем случае это замедлит работу видео конвертера, но конкурирующие процессы (если таковые имеются) будут поддерживать загрузку процессора, как и раньше.
июля