--cpulimit 简介--

--cpulimit 命令的工作原理 --

为进程预设一个 cpu 占用率门限,并实时监控进程是否超出此门限,若超出则让该进程暂停运行一段时间。cpulimit 使用 
SIGSTOP 和 SIGCONT 这两个信号来控制进程。它不会修改进程的 nice 值,而是通过监控进程的 cpu 占用率来做出动态调
整。

cpulimit 的优势是可以控制进程的cpu使用率的上限值。但与 nice 相比也有缺点,那就是即使 cpu 是空闲的,进程也不能
完全使用整个 cpu 资源。

在 CentOS 上,可以用下面的方法来安装它:
wget -O cpulimit.zip https://github.com/opsengine/cpulimit/archive/master.zip
unzip cpulimit.zip
cd cpulimit-master
make
cp src/cpulimit /usr/bin
上面的命令行,会先从从 GitHub 上将源码下载到本地,然后再解压、编译、并安装到 /usr/bin 目录下。 
现在就可以使用cpulimit命令了! 
举例:

cpulimit –e httpd –l 40 #限制httpd(进程名)的cpu使用率为40%
cpulimit –e /usr/local/bin/httpd –l 40
cpulimit –p 2960 –l 55 #限制pid为2960的进程的CPU占用为55%
-e httpd, –exe=httpd,两者等同。 
-l 40, –limit=40, 两者等同。 

单核cpu和多核cpu 
单核cpu的使用率范围为0%-100%,四核cpu的使用率范围为0%-400%.
要运行cpulimit作为后台进程,请使用--background或-b开关,释放终端。

--cpulimit第二种--
安装cpulimit
使用源码安装:
cd /tmp
wget http://downloads.sourceforge.net/cpulimit/cpulimit-1.1.tar.gz
tar xf cpulimit-1.1.tar.gz
cd cpulimit-1.1
make
cp cpulimit /usr/local/sbin/
rm -rf cpulimit*

使用脚本自动控制进程CPU使用率
yum install cpulimit gawk -y
下载脚本:
wget http://ahao.me/dl/sh/cpulimit_daemon.sh
wget http://ahao.me/dl/sh/cpulimit

请输入图片描述
红框部分:
CPU_LIMIT:这是每个程序能使用的最大CPU资源。默认值为 20%。
DAEMON_INTERVAL:这是脚本检查CPU情况的间隔时间,默认值为3秒。
BLACKPROCESSLIST:这是指定只监视某些特定进程时用的黑名单。有多个进程的话,可以用 “|” 隔开。 例
如:”mysql|firefox|gedit”。
WHITEPROCESSESLIST:这是指定某些特定进程不用监视时用的白名单,用法同上。
注意: 黑名单和白名单至少要有一个为空白,不能同时使用这两者。

将 cpulimit_daemon.sh 文件拷贝至 /usr/bin/ 并修改其访问权限。
cp cpulimit_daemon.sh /usr/bin
chmod 700 /usr/bin/cpulimit_daemon.sh

将 cpulimit 文件拷贝至 /etc/init.d/ 并修改其访问权限并使其开机自启动。
cp cpulimit /etc/init.d/
chown root:root /etc/init.d/cpulimit
chmod +x /etc/init.d/cpulimit

加入开机启动,重启系统,守护进程会自动启动(生产服务器别乱重启)
chkconfig --add cpulimit
chkconfig cpulimit on
systemctl enable cpulimit #centos 7 
启动、停止、状态
systemctl  start|status|stop  cpulimit