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.
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
OPTIONS
-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
Examples
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..