Что такое Cpulimit
Cpulimit — это инструмент, который ограничивает использование ЦП процессом (выражается в процентах, а не во времени ЦП). Полезно контролировать разное ПО, когда вы не хотите, чтобы они потребляли слишком много % от процессора. Цель состоит в том, чтобы не допустить, чтобы процесс выполнялся дольше указанного времени. Это не изменяет значение nice или другие настройки приоритета планирования, а изменяет реальное использование ЦП. Кроме того, он способен динамически и быстро адаптироваться к общей нагрузке системы. Контроль используемого количества ЦП осуществляется путем отправки процессам сигналов SIGSTOP и SIGCONT POSIX. Все дочерние процессы и потоки указанного процесса будут совместно использовать один и тот же процент ЦП.
Как установить Cpulimit
Сначала заходим на наш сервер и выполняем команду:
Ubuntu/Debian: apt install cpulimit
CentOS/RHEL: yum install cpulimit
Мы ограничиваем использование ЦП с помощью параметра –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
После выполнения данной команды, вы спокойно можете закрыть терминал и не беспокоиться, что любой сервис который вы ограничили, будет повторно создавать большую нагрузку на ЦП.