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用户可以限制所有的进程,普通用户只能限制自己有权限管理的进程。

项目地址:https://github.com/opsengine/cpulimit

» 本文链接:CentOS6 & CentOS7下使用cpulimit限制程序cpu占用
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。
评论 ( 1)
  1. avatar
    沙发
    11 2022-01-09 18:07

    tg多少