前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux VPS 通过 CPULimit 来限制CPU使用率

Linux VPS 通过 CPULimit 来限制CPU使用率

作者头像
雪梦科技
发布2020-05-09 17:31:56
5.4K0
发布2020-05-09 17:31:56
举报
文章被收录于专栏:ITCoder

说明 :我们手上经常有很多廉价的 VPS,有时候使用某些软件应用的时候,会出现 CPU 跑满的情况,而长时间跑满会被 VPS 商家停掉,所以这里我们需要想办法来限制进程 CPU 使用率,这里就说个教程。

一、简介

cpulimit 命令的工作原理是为进程预设一个 cpu 占用率上限,并实时监控进程是否超出此上限,而做出动态调整。从而可以控制进程的 cpu 使用率的上限值。

二、安装

使用 root 运行命令:

代码语言:javascript
复制
#debian/ubuntu 系统
apt install -y cpulimit

#RHEL/Centos/Fedora 系统
yum install epel-release cpulimit

三、使用

代码语言:javascript
复制
cpulimit -h
Usage: cpulimit [OPTIONS...] TARGET
OPTIONS
-l, --limit=N percentage of cpu allowed from 0 to 100 (required)//cpu 限制的百分比
-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) //进程的 pid
-e, --exe=FILE name of the executable program file or path name //可执行程序
COMMAND [ARGS] run this command and limit it (implies -z)

四、用法

1、常规用法

代码语言:javascript
复制
#限制 firefox 使用 30% cpu 利用率
cpulimit -e firefox -l 30

#限制进程号 1313 的程序使用 30%cpu 利用率
cpulimit -p 1313 -l 30

#限制绝对路径下该软件的 cpu 利用率
cpulimit -e /usr/local/nginx/sbin/nginx -l 50

2、限制所有进程的 CPU 使用率 默认情况下 cpulimit 只能对已经存在的进程进行限制,但是设置此脚本为随机自启动即可,它会对所有进程(包括新建进程)进行监控并限制(3秒检测一次,CPU 限制为 75%

这就可以防止因为 CPU 使用率过高而被 ban 了!

代码语言:javascript
复制
#!/bin/bash

while true ; do

id=`ps -ef | grep cpulimit | grep -v "grep" | awk '{print $10}' | tail -1`

nid=`ps aux | awk '{ if ( $3 > 75 ) print $2 }' | head -1`

if [ "${nid}" != "" ] && [ "${nid}" != "${id}" ] ; then

    cpulimit -p ${nid} -l 75 &

    echo "[`date`] CpuLimiter run for ${nid} `ps -ef | grep ${nid} | awk '{print $8}' | head -1`" >> /root/cpulimit-log.log

fi

sleep 3

done

保存到 /root/cpulimit.sh,会自动生成日志文件 /root/cpulimit-log.log

然后修改 /etc/rc.local 在对应位置加入 /root/cpulimit.sh 再重启系统,就会全程限制各个进程的 CPU 使用了!

五、注意事项

  1. 后面限制的 cpu 使用量,要根据实际的核心数量而成倍减少。40%的限制生效在 1 核服务器中,如果是双核服务器,则应该限制到 20%,四核服务器限制到 10%以此类推。
  2. root 用户可以限制所有的进程,普通用户只能限制自己有权限管理的进程。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年12月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、简介
  • 二、安装
  • 三、使用
  • 四、用法
  • 五、注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档