Cpulimit (CPU Usage Limiter for Linux) — маленькая C (си) консольная утилита позволяющая ограничить использование ЦПУ / CPU для заданного процесса или группы процессов.
Принцип работы Cpulimit заключается в отслеживании потребляемого процессорного времени указанным процессом, на основе информации из виртуальной файловой системы procfs (доступ к информации о системных процессах из ядра) и отправке процессам сигналов SIGSTOP (приостановка выполнения процесса) и SIGCONT (возобновление выполнения процесса) в определённые временные промежутки.
Cpulimit будет полезна при необходимости ограничения использования центрального процессора (CPU) конкретным приложением, ресурсоёмким и/или выполняющим пакетное задание. Ограничение запускается по идентификатору процесса (PID), имени приложения, или абсолютному пути к исполняемому файлу. Ограничение задаётся в процентах, для многоядерных процессоров и многопроцессорных систем данный параметр нужно учитывать (например для процессора с 4 ядрами работа без ограничений 400% а не 100%).
Cpulimit ограничивает только использование общего суммарного процессорного времени, а не повышает приоритет перед другими процессами (при повышении/уменьшении приоритета нет возможности точно задать использование процессорного времени). Утилита способна подстраиваться к общей нагрузке системы, быстро и динамично ограничивая процесс или группу процессов (по дочерним процессам равномерно распределяется процент использования времени процессора). Для работы с утилитой требуются права администратора (root).
Лицензия: GNU General Public License version 2.0 (GPLv2)