CentOS6 & CentOS7下使用cpulimit限制程序cpu占用
cpulimit 是一个限制进程的 CPU 使用率的工具(以百分比表示,而不是 CPU 时间)。当您不希望批处理作业占用太多 CPU 周期时,控制批处理作业很有用。目标是防止进程运行超过指定的时间比率。它不会更改 nice 值或其他调度优先级设置,而是更改真实的 CPU 使用率。此外,它能够动态地、快速地适应整个系统负载。使用的 CPU 数量的控制是通过向进程发送 SIGSTOP 和 SIGCONT POSIX 信号来完成的。指定进程的所有子进程和线程将共享相同百分比的 CPU。
安装:
Ubuntu/Debian:
apt-get install cpulimit -y
RedHat/CentOS:
yum install cpulimit -y
或者使用博客提供的rpm包进行安装。
CentOS6:
https://cikeblog.com/s/cpulimit-1.9-1.1.x86_64.rpm
CentOS7:
https://cikeblog.com/s/cpulimit-0.2-1.20151118gitf4d2682.el7.x86_64.rpm
cpulimit内置参数:
cpulimit --help Usage: cpulimit [OPTIONS…] TARGET OPTIONS -l, --limit=N percentage of cpu allowed from 0 to 800 (required) -v, --verbose show control statistics -z, --lazy exit if there is no target process, or if it dies -i, --include-children limit also the children processes -h, --help display this help and exit TARGET must be exactly one of these: -p, --pid=N pid of the process (implies -z) -e, --exe=FILE name of the executable program file or path name COMMAND [ARGS] run this command and limit it (implies -z)
有三种使用办法:
1.根据进程ID限制:进程ID为123456的程序只能使用80%的cpu
cpulimit -p 123456 -l 80
2.根据进程路径限值:itkylin只能使用80%的cpu
cpulimit -e /opt/www/itkylin -l 80
3.根据进程名称限制:itkylin只能使用80%的cpu
cpulimit -l 80 itkylin
注意:
-l 后面限制的cpu使用量,要根据实际的核心数量而成倍减少。比如上文中的进程1234,40%的限制生效在1核服务器中,如果是双核服务器,则应该限制到20%,四核服务器限制到10%以此类推。
root用户可以限制所有的进程,普通用户只能限制自己有权限管理的进程。
继续阅读