CPUlimit 有效防止 Linux 系统 CPU 过载

631 字
3 分钟
CPUlimit 有效防止 Linux 系统 CPU 过载

最近使用Nginx服务器测试 pagespeed 的加速效果时,发现这货会造成 CPU 占用过高,Nginx 经常 100%,尽管使用的是静态缓存,总是触发主机商的CPU占用上限,不停的被强制关机。发现 CPULimit 这款工具刚好可以解决这个问题,便在此记录一下 CentOS 6 下 CPULimit 的安装和使用过程。其实也可以使用 nice 管理进程的优先级也能达到类似的效果。

CPUlimit有效防止Linux系统CPU过载.jpg
CPUlimit有效防止Linux系统CPU过载.jpg

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

参数介绍#

先了解一下 cpulimit 的参数:

[root@bruce ~]# cpulimit -h
Usage: cpulimit [OPTIONS...] TARGET
OPTIONS
-l, --limit=N percentage of cpu allowed from 0 to 200 (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) //限制某一条命令执行的cup占用

开始安装#

Linux / OS X 系统,执行:

cd /tmp
wget https://github.com/opsengine/cpulimit/archive/v0.2.zip
unzip v0.2.zip
cd cpulimit-0.2
make
cp src/cpulimit /usr/bin

安装完成!

使用方法#

1、根据进程ID限制

cpulimit -p 1234 -l 40

指限制 pid 为1234的进程,最高只能使用40%的cpu用率。

2、根据进程路径限制

cpulimit -e /usr/local/nginx-1.4.1/sbin/nginx -l 50

指限制 nginx 程序最高只能使用50%的cpu用率。

3、限制某一条命令执行的cup占用

cpulimit -l 60 unzip 5555.zip

指限制解压 5555.zip 这个进程的cpu占用上限值为 60%

注意事项#

  • -l 后面限制的cpu使用量,要根据实际的核心数量而成倍减少。比如上文中的进程1234,40%的限制生效在1核服务器中,如果是双核服务器,则应该限制到20%,四核服务器限制到10%以此类推。
  • root 用户可以限制所有的进程,普通用户只能限制自己有权限管理的进程。
  • 通过某一条命令执行限制cup占用的,请注意 cpulimit 只针对单个进程进行限制。若命令包含两个进程则无效。

最后#

除了 cpulimit 其实我们还可以通过 nice 命令工具实现合理化使用系统资源的目的。

微信公众号

搜一搜 IMMOEWAH

技术/人文/思辨/随笔

微信公众号

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
CPUlimit 有效防止 Linux 系统 CPU 过载
https://blog.moewah.com/posts/9/
作者
MoeWah
发布于
2018-09-21
许可协议
CC BY-NC-SA 4.0
相关文章 智能推荐
1
甲骨文Debian扩容引导卷无损调整分区
虚拟化与运维 如何在不丢失数据的情况下扩容甲骨文ARM实例的Debian引导卷?本文详细演示从云端分配容量到本地调整分区大小的全流程,解决Mastodon存储空间不足问题,确保系统稳定运行。
2
梅林路由器安装Entware完整指南
虚拟化与运维 如何在梅林路由器上安装并使用Entware?本文详细讲解从U盘格式化、挂载到Entware安装的全流程,帮助用户扩展路由器功能,解决存储不足问题,实现软件包自由管理。
3
群晖NAS使用Crontab任务计划完整指南
NAS私有云 如何在群晖NAS上配置Crontab定时任务?本文详细讲解非root用户下切换身份、编辑crontab文件及重启服务的完整流程,解决群晖系统无法直接使用crontab命令的问题,助你高效自动化运维。
4
Ubuntu/Debian 卸载命令全解:apt remove/purge/autoremove 的区别
虚拟化与运维 apt remove、apt purge、apt autoremove 三个卸载命令的区别详解:remove 保留配置、purge 清除配置、autoremove 清理孤儿依赖,附 --simulate 预览技巧与官方文档出处,Ubuntu/Debian 用户避坑指南。
5
Docker Volume 与 Bind Mount 怎么选?区别、性能对比、双向迁移实战
虚拟化与运维 Docker Volume 和 Bind Mount 有什么区别?性能差距大吗?一文讲透数据卷与绑定挂载的管理边界、适用场景与迁移便捷性,附双向转换完整命令:卷迁宿主机目录、目录转数据卷,全部实测可抄。数据库用卷、开发热重载用绑定挂载,自部署选型不再纠结。
随机文章 随机推荐

评论区

Profile Image of the Author

关于作者

MoeWah

我是 MoeWah,喵斯基部落的作者。一个折腾自托管、群晖 NAS、虚拟化运维与 SEO/GEO 实践的独立博主,10 年以上的企业站运维与SEO优化经验,文章来自真实部署与踩坑记录。为自己记录,为同路人分享。
专题
分类
站点统计
文章
205
分类
9
标签
449
总字数
413,918
运行时长
0
最后活动
0 天前

目录