[技术教程] Linux VPS 主机使用 CPULimit 来限制 Linux 进程的 CPU 使用率
作者:CC下载站 日期:2021-07-22 05:32:12 浏览:1405 分类:web
搬瓦工 VPS 都会限制 CPU 使用率,如果超出限制,VPS主机会被暂停。可以使用 CPULimit 每个进程的 CPU 使用率进行限制,可以避免搬瓦工 VPS 的过程中因超出 CPU 限制而被暂停。CPULimit适用于所有的Linux VPS主机,因为搬瓦工 VPS 比较典型,以搬瓦工 VPS 为例。
CPULimit 简介
CPUlimit 是一个限制进程的 CPU 使用率的工具(以百分比表示,而不是以 CPU 时间表示)。 当不希望批处理作业占用太多 CPU 时,控制批处理作业很有用。 目标是防止进程运行超过指定的时间比率。它不会更改 nice 值或其他调度优先级设置,而是更改真实的 CPU 使用率,而且能够动态且快速地适应整个系统负载。 使用的 CPU 数量的控制是通过向进程发送 SIGSTOP 和 SIGCONT POSIX 信号来完成的。 指定进程的所有子进程和线程将共享相同百分比的 CPU。
CPULimit 安装
在 Debian 或 Ubuntu 中,使用 apt 命令安装:
sudo apt-get install cpulimit
在 CentOS、RHEL 或 Fedora 中,启用 EPEL后,再以 yum 安装:
sudo yum install cpulimit
或者直接:
sudo yum install epel-release cpulimit
CPULimit 使用教程
帮助命令如下:
root@hk:~# cpulimit -h CPUlimit version 2.4 Usage: cpulimit TARGET [OPTIONS...] [-- PROGRAM] TARGET must be exactly one of these: -p, --pid=N pid of the process -e, --exe=FILE name of the executable program file The -e option only works when cpulimit is run with admin rights. -P, --path=PATH absolute path name of the executable program file OPTIONS -b --background run in background -f --foreground launch target process in foreground and wait for it to exit -c --cpu=N override the detection of CPUs on the machine. -l, --limit=N percentage of cpu allowed from 1 up. Usually 1 - 100, but can be higher on multi-core CPUs (mandatory) -m, --monitor-forks Watch children/forks of the target process -q, --quiet run in quiet mode (only print errors). -k, --kill kill processes going over their limit instead of just throttling them. -r, --restore Restore processes after they have been killed. Works with the -k flag. -s, --signal=SIG Send this signal to the watched process when cpulimit exits. Signal should be specificed as a number or SIGTERM, SIGCONT, SIGSTOP, etc. SIGCONT is the default. -v, --verbose show control statistics -z, --lazy exit if there is no suitable target process, or if it dies -- This is the final CPUlimit option. All following options are for another program we will launch. -h, --help display this help and exit
以 md5sum 进程为例。运行以下命令:
md5sum /dev/urandom
这是一个非常耗 CPU 的进程,这行指令会从 /dev/urandom 读取随机数据,计算其 MD5 检查码,这个指令非常耗费 CPU,而且试算不完的,若要中止此进程,请按下 Ctrl + c。
注意:不要长时间运行此命令,仅教学使用,不然可能你的搬瓦工 VPS 不知不觉就被暂停了。
在这行 md5sum 指令执行之后,我们可以使用 top 指令查看目前系统的状况,此时 md5sum 的 CPU 用量应该会接近 100%,如图所示。
如果想要让这个 md5sum 进程不要吃掉太多的 CPU 资源,可以使用 cpulimit 来限制其 CPU 用量(需先在 top 里查看进程的 PID,然后另开一个终端操作):
cpulimit --pid 11699 --limit 50
执行之后,该进程的 CPU 用量就会被控制在 50% 左右,如下图所示(因为我重新运行了一下,所以 PID 变了,不然是不会变的)。
另外也可以使用进程名称来限制 CPU 使用量:
cpulimit --exe md5sum --limit 50
或者以绝对路径来限制 CPU 使用量,可以避免不同进程有相同进程名的问题:
cpulimit --path /usr/bin/md5sum --limit 50
如果在进程执行前就已经确定要调整 CPU 用量,也可以直接以 cpulimit 来执行进程,例如:
cpulimit --limit 50 -- md5sum /dev/urandom
最后,如果想要停止刚刚已经限制的进程,那么需要通过 top 查找 PID 然后 kill:
kill -9 PID
好像没看到更优雅的结束进程的方式。
CPULimit 高级用法
1、后台运行
cpulimit 在执行时也会占用一个终端机,若想让 cpulimit 在后台运行,可加上 –background 参数:
cpulimit --pid 21203 --limit 50 --background
2、终止 CPU 用量过高的进程
cpulimit 配合 –limit 参数可以限制进程的 CPU 用量上限值,如果进程超过这个上限值,预设会调节 CPU 用量,而如果想要在 CPU 用量过高时直接中止进程,可以加上 –-kill 参数:
cpulimit --pid 21203 --limit 50 --kill
3、自动离开
在默认的状况下,cpulimit 在执行时若没有发现指定的进程(或是指定的进程已经中止了),它还是会持续等待并监控系统的进程,只要有发现符合条件的进程,就会继续进行 CPU 用量的控制。
若想让 cpulimit 在找不到目标进程时自动离开,可以加上 –lazy 参数:
cpulimit --exe md5sum --limit 50 --lazy
4、实用范例
在撰写 bash 脚本时,我们可以先执行一个进程,紧接着从 bash 的 $! 变量读取出前一个执行进程的 PID,这样就可以不需要手动查出进程的 PID 了:
# 运行进程 md5sum /dev/urandom & # 限制上一个进程的 CPU 用量 cpulimit --pid $! --limit 50
以上就是 cpulimit 这个小工具的一些基础用法和进阶用法,希望对大家有所帮助。
猜你还喜欢
- 03-12 [Linux] Linux Kernel v4.14.6 Stable 长期支持版本
- 03-12 [Linux]深度Linux Deepin 2014.3 正式版发布
- 04-06 [计算机与网络] 《Linux就该这么学》—非常适合linux技术学习的入门好书
- 07-16 [LINUX] Linux集群内SSH免密码访问的快速配置方法
- 10-21 [操作系统]《红帽企业Linux 6.4 桌面版》(Red Hat Enterprise Linux 6.4 Desktop)x86/64,官方多国语言版[光盘镜像]
- 10-21 [操作系统]《红帽企业Linux 5.9服务器版》(Red Hat Enterprise Linux 5.9 Server)x86/64[光盘镜像]
- 10-21 [操作系统]《红帽企业Linux 6.4 服务器版》(Red Hat Enterprise Linux 6.4 Server)x86/64,官方多国语言版[光盘镜像]
- 10-21 [操作系统]《红帽企业Linux 6.4 工作站版》(Red Hat Enterprise Linux 6.4 Workstation)x86/64,官方多国语言版[光盘镜像]
- 07-29 [素材] PS模版 中式中国风古典线条LOGO婚礼派对背景设计素材
- 06-02 [网络工具] FinalShell: 可替代Xshell的SSH工具 / 支持Linux、Windows、Mac / 免费远程桌面加速(更新时间2018.7.19)
- 08-25 [课程] 马哥Linux高端运维云计算就业班课程
- 10-23 [Linux] Linux 系统目录结构
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[电影] 《环太平洋两部合集》 4K REMUX原盘 [杜比视界] 国英双语音轨 [内封特效字幕] [133.8G]
[电影] 异人之下 The Traveller 2024✨【影版】【4K正式版/HQ超高码/DDP5.1】✚【1080高码】无水印/无压缩
[动漫] 头文字D 动漫 (1998) S01-S06季 1080P 国粤日音轨 续作 剧场版 电影
[小说] 知轩藏书全站7667册txt小说合集精心校对版
[杂志] 电脑爱好者杂志14年 超全 [PDF]
[电影] 西游记全部版本-4K高清修复-总计384G-1986+1996+1998+2002+2010浙版+西游记后传
[纪录片] 【国家地理百年纪念典藏】超经典100集全 MP4格式 (绝佳学习资料)27GB
[纪录片] B站食贫道收费纪录片 *迷失东京* [1080P] 揭露日本大家感兴趣却不为人知的秘密
[网络线报] 城通网盘福利线报解析器 - 获取直连下载地址
[福利线报] 一个「脚本」搞定六大网盘(百度/阿里/天翼/迅雷/夸克/移动)
[游戏] 《黑神话悟空》免安装学习版【全dlc整合完整版】+Steam游戏解锁+游戏修改工具!
[动画] 《名侦探柯南》名侦探柯南百万美元的五菱星 [TC] [MP4]
[电视剧集] [BT下载][黑暗城市- 清扫魔 Dark City: The Cleaner 第一季][全06集][英语无字][MKV][720P/1080P][WEB-RAW]
[涨点姿势] 男性性技宝典:14招实战驭女术——爱抚、按摩、催情、姿势、高潮全攻略
[动画] 2002《火影忍者》720集全【4K典藏版】+11部剧场版+OVA+漫画 内嵌简日字幕
[剧集] 《斯巴达克斯》1-4季合集 无删减版 1080P 内嵌简英特效字幕
[CG剧情] 《黑神话:悟空》158分钟CG完整剧情合集 4K120帧最高画质
[短剧] 被下架·禁播的羞羞短剧·午夜短剧合集
[游戏] 黑神话悟空离线完整版+修改器
[图像处理] 光影魔术手v4.6.0.578绿色版
[影视] 美国内战 4K蓝光原盘下载+高清MKV版/内战/帝国浩劫:美国内战(台)/美帝崩裂(港) 2024 Civil War 63.86G
[影视] 一命 3D 蓝光高清MKV版/切腹 / 切腹:武士之死 / Hara-Kiri: Death of a Samurai / Ichimei 2011 一命 13.6G
[影视] 爱情我你他 蓝光原盘下载+高清MKV版/你、我、他她他 2005 Me and You and Everyone We Know 23.2G
[影视] 穿越美国 蓝光原盘下载+高清MKV版/窈窕老爸 / 寻找他妈…的故事 2005 Transamerica 20.8G
[电影] 《黄飞鸿》全系列合集
[Android] 开罗游戏 ▎像素风格的模拟经营的游戏厂商安卓游戏大合集
[游戏合集] 要战便战 v0.9.107 免安装绿色中文版
[资源] 精整2023年知识星球付费文合集136篇【PDF格式】
[系统]【黑果小兵】macOS Big Sur 11.0.1 20B50 正式版 with Clover 5126 黑苹果系统镜像下载
[美图] 【经典收藏美图集合】1500多张韩国美女高清图片让你的收藏夹更加丰富多彩
- 最新评论
-
有靳东!嘻嘻奥古斯都.凯撒 评论于:10-28 流星花园是F4处女作也是4人集体搭配的唯一一部!奥古斯都.凯撒 评论于:10-28 找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢AAAAA 评论于:10-26 找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢password63 评论于:10-26 找了好久的资源,终于在这里找齐了!!!!blog001 评论于:10-21 找了好久的资源,终于在这里找齐了!!!!blog001 评论于:10-21 找了好久的资源,终于在这里找到了。感谢本站的资源和分享。谢谢WillKwok 评论于:10-09 感谢分享1234123 评论于:10-07 太好了终于找到了谢谢Tom 评论于:10-07 谢谢分享loonghd 评论于:09-30
- 热门tag