204天前2019-11-14 10:20:11 |    抢沙发  218 
今天有这么一个需求,之前用python写了一个长期运行的脚本,一段时间后发现他占用CPU比较高,基本99%-100%但是我又不想去改脚本,太忙了.而且脚本停一次也挺麻烦的.于是就找到了在linux下限制程序或进程cpu使用率的方案,限制拿出来分享给大家.

cpu

工具名称:cpulimit

我的服务器是centos 所以直接用yum安装就好了。

yum install cpulimit

#选项
-l 0~200 限定CPU占据率0%~200%
-v 显现控制的统计信息
-z 当被控制的程式退出的时候,CPULimit程式也跟着退出
-i 同时限定被控程式的子进程
#command
-p 被控程式的PID
-e 被控程式的程式称号

案列:

限定php-fpm进程的CPU使用率最高为50%,并显现控制信息。

cpulimit -l 50 -i -v -e php-fpm 
 根据进程ID限值

cpulimit -p 1234 -l 40
我们可以放到后台去执行,否则你要一直开着shell这是不科学的。

后台执行,只需要在command前后进入nohup……&,回车便可

nohup cpulimit -p 23008  -l 25 &

注意事项
需要注意的是,-l后面默认值是百分比,且在双核情况下要减半。例如php-fpm的例子,在双核cpu情况下他可以利用25%的cpu,在4核的情况下,只能使用12.5%的cpu.root用户可以限值所有的进程,普通用户只能限值自己程序.

到此就已经实现了在linux中限制程序或进程的cpu使用率了。

发表评论

暂无评论

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享