Что такое Cpulimit
Cpulimit — это инструмент, который ограничивает использование ЦП процессом (выражается в процентах, а не во времени ЦП). Полезно контролировать разное ПО, когда вы не хотите, чтобы они потребляли слишком много % от процессора. Цель состоит в том, чтобы не допустить, чтобы процесс выполнялся дольше указанного времени. Это не изменяет значение nice или другие настройки приоритета планирования, а изменяет реальное использование ЦП. Кроме того, он способен динамически и быстро адаптироваться к общей нагрузке системы. Контроль используемого количества ЦП осуществляется путем отправки процессам сигналов SIGSTOP и SIGCONT POSIX. Все дочерние процессы и потоки указанного процесса будут совместно использовать один и тот же процент ЦП.
Как установить Cpulimit
Сначала заходим на наш сервер и выполняем команду:
Ubuntu/Debian: apt install cpulimit
CentOS/RHEL: yum install cpulimit
![Как ограничить процессы в процентах ЦП на Linux](https://firstbyte.ru/wp-content/uploads/2023/04/2023-03-16_12-31-15.png)
Мы ограничиваем использование ЦП с помощью параметра —limit или -l, чтобы установить процент использования для процесса. Прежде чем ограничивать использование ЦП, нам нужно найти процесс который использует все время ЦП.
Запускаем команду «top» и смотрим какой процесс делает самую большую нагрузку на ЦП.
Дальше мы смотрим какой PID у него и запускаем команду, чтобы ограничить использование ЦП этого процесса (где указано process_pid, мы указываем PID нашего процесса, а где указано cpu — мы указываем проценты)
cpulimit -p process_pid -l 20
Мы видим что «cpulimit» увидел что такой процесс существует, затем открываем еще одно соединение с сервером и смотрим заново нагрузку с командой «top»
Как видим, процесс действительно теперь использует не все 100% от ЦП, а 23% (немного больше чем мы указали.
Чтобы «cpulimit» продолжал ограничивать процесс на фоне когда мы отсоединимся с сервера, мы к команде добавляем еще —background или -b, чтобы команда выглядела так:
cpulimit -p process_pid -l 20 -b
После выполнения данной команды, вы спокойно можете закрыть терминал и не беспокоиться, что любой сервис который вы ограничили, будет повторно создавать большую нагрузку на ЦП.