Linux下通过 cpulimit 限制和使用脚本自动控制进程CPU使用率

        在做流量站时,由于需要用到FireFox来挂,但容易碰到FLASH或一些JS脚本导致浏览器进程的CPU使用率长期达到100%或更高,这容易被VPS提供商以滥用的的“罪名”给Suspended了,这不是VPS提供商和我们所愿意看到的。
        Cpulimit是一款用于控制CPU使用率的工具,我们可以通过cpulimit来限制。

一、安装cpulimit

使用源码安装:

对于Debian/Ubuntu用户,可以使用apt-get更方便更快捷的安装:

二、cpulimit的用法

限制firefox使用30% cpu利用率
# cpulimit -e firefox -l 30

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

根据进程名找出pid的方法
# ps aux | less
# ps aux | grep firefox
# pgrep -u vivek php-cgi
# pgrep lighttpd

可以使用绝对路径限制进程的cpu利用率
# cpulimit -P /opt/firefox/firebox -l 30

单核cpu和多核cpu
单核cpu的使用率范围为0%-100%,四核cpu的使用率范围为0%-400%.

三、使用脚本自动控制进程CPU使用率
        这里介绍的是一套用它来自动控制CPU使用率的脚本,它可以用于防止CPU超载,也可以用黑名单/白名单的方法对某些特殊应用放行,对于服务器是一套有用的工具。

首先安装 cpulimit 和 gawk

通过命令下载脚本

        下载 cpulimit_daemon.sh 和 cpulimit 两个文件。可用编辑器修改实现自定义配置,如下图:
cpulimit
红框部分:
CPU_LIMIT:这是每个程序能使用的最大CPU资源。默认值为 20%。
DAEMON_INTERVAL:这是脚本检查CPU情况的间隔时间,默认值为3秒。
BLACKPROCESSLIST:这是指定只监视某些特定进程时用的黑名单。有多个进程的话,可以用 “|” 隔开。 例如:”mysql|firefox|gedit”。
WHITEPROCESSESLIST:这是指定某些特定进程不用监视时用的白名单,用法同上。
注意: 黑名单和白名单至少要有一个为空白,不能同时使用这两者。

脚本的安装:
将 cpulimit_daemon.sh 文件拷贝至 /usr/bin/ 并修改其访问权限。

将 cpulimit 文件拷贝至 /etc/init.d/ 并修改其访问权限并使其开机自启动。

加入开机启动,重启系统,守护进程会自动启动。

可以在终端中查看和控制状态:

检查守护进程是否已启动。 如果没有,用以下命令启动。

相反可以用以下命令终止:

四、cpulimit、gawk和脚本的卸载

卸载可参考以下步骤:
1、停止守护进程

2、移除开机自启动

3、删除自启动脚本

4、删除 cpulimit daemon 文件

5、卸载 cpulimit 程序

删除 gawk 与否看情况。

脚本部分的原文来自:http://maketecheasier.com/limit-cpu-usage-of-any-process-in-linux/2010/09/22

此条目发表在Linux, VPS(虚拟专用服务器), VPS教程分类目录,贴了, 标签。将固定链接加入收藏夹。

Linux下通过 cpulimit 限制和使用脚本自动控制进程CPU使用率》有3条回应

  1. liyan说:

    这个很实用

发表回复