Как ограничить использование процессора процессом в 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, вам нужно передать с помощью команды один из следующих трех аргументов:
- -p или –pid : идентификатор процесса.
- -e или –exe : имя исполняемого файла
- -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.