Как ограничить использование процессора процессом в Linux с помощью cpulimit

Когда вы работаете в системе Linux, многие процессы выполняются в фоновом режиме. Эти процессы занимают системные ресурсы в виде использования ЦП и времени.

Хотя в большинстве случаев ОС управляет этими процессами автоматически, иногда ресурсоемкий процесс может чрезмерно использовать ЦП из-за интенсивной обработки или плохой разработки. Обычно ответ заключается в том, чтобы убить процесс напрямую или ограничить его использование ЦП до определенного предела.

К счастью, в Linux вы можете ограничить использование ЦП процессом с помощью утилиты командной строки cpulimit .

Как определить процесс с высокой загрузкой ЦП

Прежде чем вы сможете ограничить процент системных ресурсов, которые может использовать процесс, вам необходимо найти идентификатор этого конкретного процесса. Идентификатор процесса (или PID) – это уникальный номер, который ваша система использует для идентификации процесса.

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

 top

Выход:

Столбец % CPU показывает процент использования CPU конкретным процессом. Если ваш компьютер пытается обработать больше данных, чем он может, то какой-то конкретный процесс будет загружать процессор на 100%. Проверьте таблицу, чтобы увидеть, есть ли какие-либо процессы с высокой загрузкой ЦП.

Как только вы нашли процесс с высокой загрузкой ЦП, запишите его PID. Идентификатор процесса важен для ограничения использования процесса.

Ограничьте использование ЦП с помощью cpulimit

Как упоминалось выше, cpulimit – это утилита командной строки, которая добавляет ограничение на количество системных ресурсов, используемых определенным процессом на вашем компьютере. Поскольку большинство дистрибутивов Linux не поставляются с предустановленным cpulimit, вам придется установить его вручную.

Вы можете установить пакет в Ubuntu и других дистрибутивах на основе Debian следующим образом:

 sudo apt install cpulimit

В дистрибутивах на основе Arch, таких как Manjaro Linux:

 sudo pacman -S cpulimit

Cpulimit доступен в репозитории EPEL (Extra Packages for Enterprise Linux). Поэтому, чтобы установить его в дистрибутивах CentOS и RHEL, вам сначала нужно включить репозиторий EPEL.

 yum install epel-release
yum install cpulimit

Базовый синтаксис

Чтобы использовать cpulimit, вам нужно передать с помощью команды один из следующих трех аргументов:

  1. -p или –pid : идентификатор процесса.
  2. -e или –exe : имя исполняемого файла
  3. -p или –path : абсолютный путь к исполняемому файлу

Основной синтаксис команды:

 cpulimit -p pid
cpulimit -e executablename
cpulimit -p /path-to-executable

Ограничьте использование ЦП процессом

Вы можете использовать флаг –limit или -l утилиты cpulimit, чтобы добавить ограничение на ресурсы, которые может использовать процесс. Чтобы заставить процесс с PID 81550 использовать только 50% ЦП:

 sudo cpulimit -p 81550 --limit 50

Здесь cpulimit ограничивает использование ЦП процессом, пока он выполняется. Если вы остановите выполнение cpulimit, использование ЦП этим конкретным процессом вернется в норму.

Отличное решение для предотвращения этой проблемы – запустить cpulimit в фоновом режиме. Вы можете добавить к команде флаг –background или -b, чтобы отправить команду в фоновый режим .

 sudo cpulimit -p 81550 --limit 50 --background

Если опция –background не работает, вы можете добавить амперсанд ( & ) после команды, чтобы отправить ее в фоновый режим.

 sudo cpulimit -p 81550 --limit 50 &

Используйте команду top, чтобы проверить, работает ли вышеупомянутая команда.

Как вы могли заметить, загрузка процессора командой dd снизилась до 48,8%.

Убить процесс, используя его PID

Вместо того, чтобы ограничивать использование ЦП, вы можете полностью завершить процесс, остановив его с помощью флага –kill .

 sudo cpulimit -p 81550 --limit 50 --kill

Более разумное управление процессами в Linux

Cpulimit – отличная утилита, если вы часто сталкиваетесь с процессами с высокой загрузкой ЦП. Пользователи GNOME, которым не нравится командная строка, также могут использовать Системный монитор для управления процессами в своей системе.

В дополнение к использованию таких инструментов, как cpulimit, вы также можете снизить приоритет в Linux, чтобы предоставить меньше ресурсов конкретному процессу. Команды nice и renice помогают в управлении приоритетом процессов в Linux.