CPULimit Limit the CPU usage

cpulimit is a simple program which attempts to limit the CPU usage of a Linux process in percentage. It monitors the CPU usage of a specified process as a daemon, and adjusts its CPU utilization dynamically.. This is useful to control batch jobs, when you don’t want them to eat too much cpu. It does not act on the nice value or other scheduling priority stuff, but on the real cpu usage. Also, it is able to adapt itself to the overall system load, dynamically and quickly.

cpulimit should run on every Linux 2.2 or greater. It has been reported by several users that cpulimit works fine even on SMP hardware, but consider that if you have more than one cpu there is a little difference in the meaning of cpu usage

Note that cpulimit does not work with some specific kernel processes such as kcryptd, which just ignore SIGSTOP signal.

cpulimit tool

How to install CPUlimit

To install cpulimit on Ubuntu or Debian:

  • # apt-get install cpulimit

To install cpulimit on Fedora:

  • # yum install cpulimit

To install cpulimit on CentOS or RHEL, first enable EPEL repository on your system, and then run:

  • # yum install cpulimit

Install CPUlimit from source

[[email protected] usr]#cd /usr/local/src/
[[email protected] src]#wget http://downloads.sourceforge.net/cpulimit/cpulimit-1.1.tar.gz
[[email protected] src]#tar -zxvf cpulimit-1.1.tar.gz
[[email protected] src]# cd cpulimit-1.1
[[email protected] cpulimit-1.1]# make
gcc -o cpulimit cpulimit.c -lrt -Wall -O2
[[email protected] cpulimit-1.1]# cp cpulimit /usr/bin/

[[email protected] ~]# cpulimit -v

Usage: cpulimit TARGET [OPTIONS…]
TARGET must be exactly one of these:
-p, –pid=N        pid of the process
-e, –exe=FILE     name of the executable program file
-P, –path=PATH    absolute path name of the executable program file
-l, –limit=N      percentage of cpu allowed from 0 to 100 (mandatory)
-v, –verbose      show control statistics
-z, –lazy         exit if there is no suitable target process, or if it dies
-h, –help         display this help and exit


Limit a process by PID to 40% CPU

[[email protected] usr]# cpulimit -p 1423 -l 40
Process 1423 detected

[[email protected] usr]#cpulimit -e /usr/local/bin/ffmpeg -l 20

Thats all..