ГлавнаяОперационные системыLinuxУправление использованием ЦП с помощью nice и cpulimit

Управление использованием ЦП с помощью nice и cpulimit [Linux]

cpulimit-mainНезависимо от того, насколько быстра ваша машина с Linux, всегда найдутся задачи, которые потребляют много процессорного времени. Все, от кодирования видео до запуска математических моделей, может привести к загрузке процессора на 100%. Это нормально, если машина больше ничего не делает. Но если это ваш основной рабочий стол или он используется в качестве сервера, то выполнение задачи, которая максимально нагружает ваш процессор, сделает компьютер медленным и трудным в использовании. Прелесть многозадачной операционной системы в том, что машина не зависает, поскольку всегда распределяет время процессора для других задач, а такие вещи, как рабочий стол, по-прежнему будут работать, но гораздо медленнее. Планировщик не может узнать, хотите ли вы, чтобы задача, интенсивно использующая ЦП, выполнялась с более низким приоритетом или ограничивала время ее ЦП. Однако есть некоторые инструменты, которые можно использовать для контроля использования ЦП процессом для этих ресурсоемких задач.

Чтобы эмулировать задачу, требующую интенсивного использования ЦП, мы можем использовать инструмент под названием matho-prime, который генерирует список простых чисел. Если вы попросите его сгенерировать достаточно большой список, он будет максимально использовать процессор во время работы. Чтобы установить matho-primeна Ubuntu или Raspberry Pi, используйте:

sudo apt-get install mathomatic-primes

Давайте просто запустим задачу и посмотрим загрузку процессора:

matho-primes 0 9999999999 > p.txt &

Это предписывает matho-primesсгенерировать список простых чисел от нуля до девяти миллиардов девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч девятьсот девяносто девять! Вывод перенаправляется в файл p.txt. Амперсанд в конце указывает оболочке запустить программу в фоновом режиме, что означает, что вы вернетесь в командную строку сразу после запуска задачи.

Теперь запустите команду topи обратите внимание на объем процессора, используемого генератором простых чисел.

matho-primes-max-cpu

Теперь давайте завершим эту задачу и посмотрим, как мы можем запустить ее с более низким приоритетом. Выйдите из top, нажав q, затем введите fg, чтобы перевести matho-primesна передний план, а затем нажмите «Ctrl + C».», чтобы принудительно завершить работу программы.

Теперь снова запустите программу, но в начале команды добавьте слово nice:

nice matho-primes 0 9999999999 > p.txt &

nice— это инструмент, который сообщает Linux запланировать эту задачу с более низким приоритетом. Добротность варьируется от -20 (наиболее благоприятное планирование) до 19 (наименее благоприятное). По умолчанию niceзапланирует задачу с точностью 10. По умолчанию обычные задачи запускаются с нулевой точностью. Это означает, что задача с точностью 10 будет рассматриваться как имеющая более низкий приоритет и ей будут реже выделяться ресурсы ЦП.

Теперь мы можем запустить второй из этих генераторов простых чисел, чтобы эмулировать другие задачи, которые вы хотите выполнять на своем компьютере (например, просмотр веб-страниц или написание документа). Это будет нормально, поскольку использование рабочего стола должно быть более приоритетным, чем запуск генератора простых чисел.

matho-primes 0 9999999999 > p2.txt &

Обратите внимание, что вывод из этого файла перенаправляется на p2.txt. Вывод команды topбудет выглядеть примерно так:

мато-простые числа-хорошо

Как видите, процесс с более высоким качеством получает меньше процессорного времени. Это означает, что если вы запустите задачу с интенсивным использованием процессора с помощью nice, это не заставит вашу машину работать вяло или медленно реагировать.

ограничение процессора

Есть еще одна команда под названием «cpulimit», которая вместо изменения приоритета планирования временно приостанавливает процесс, чтобы гарантировать, что он не превысит желаемое использование ЦП.

Чтобы установить его, введите:

sudo apt-get install cpulimit

Теперь снова запустите генератор простых чисел, интенсивно использующий процессор, и запишите его номер PID с помощью этой команды:

ps | grep matho-prime

Первый столбец вывода — это PID. Теперь ограничьте использование ЦП этим процессом следующим образом:

sudo cpulimit -b -l 50 -p 16299

Где 16299 — PID процесса matho-primes. Взгляд с topпокажет что-то вроде этого:

matho-primes-cpulimit

Дальше

К niceесть сопутствующая команда под названием renice, которая меняет качество существующего процесса. Попытка использовать topили psс grep, чтобы получить PID процесса, и использовать renice +19 16299, чтобы установить приоритет минимально возможный (где 16299 — PID процесса).

Не стесняйтесь участвовать в обсуждении в комментариях ниже.

ПОХОЖИЕ СТАТЬИ

Популярные записи