用Cpulimit和脚本自动控制CPU使用率
Cpulimit 是一款用于控制CPU使用率的工具 (本站之前介绍),这里介绍的是一套用它来自动控制CPU使用率的脚本,原出 Ubuntu Forum。它可以用于防止CPU超载,也可以用黑名单/白名单的方法对某些特殊应用放行,对于服务器是一套有用的工具。
首先安装 cpulimit 和 gawk
sudo apt-get install cpulimit gawk
脚本在此处下载,其中包含 cpulimit_daemon.sh 和 cpulimit 两个文件。可用编辑器修改前者实现自定义配置,如下图:
红框部分:
CPU_LIMIT: 这是每个程序能使用的最大CPU资源。默认值为 20%。
DAEMON_INTERVAL: 这是脚本检查CPU情况的间隔时间,默认值为3秒。
BLACK_ PROCESS_ LIST: 这是指定只监视某些特定进程时用的黑名单。有多个进程的话,可以用 "|" 隔开。 例如, "mysql|firefox|gedit"。
WHITE_ PROCESSES_ LIST: 这是指定某些特定进程不用监视时用的白名单。 用法同上。
注意: 黑名单和白名单至少要有一个为空白——不能同时使用这两者。
安装:
将 cpulimit_daemon.sh 文件拷贝至 /usr/bin/ ,并修改其访问权限。
sudo cp ~/cpulimit/cpulimit_daemon.sh /usr/bin
sudo chmod 700 /usr/bin/cpulimit_daemon.sh
将 cpulimit 文件拷贝至 /etc/init.d/ ,修改其访问权限并使其开机自启动。
sudo cp ~/cpulimit/cpulimit /etc/init.d/
sudo chown root:root /etc/init.d/cpulimit
sudo chmod +x /etc/init.d/cpulimit
sudo update-rc.d cpulimit defaults
重启系统,守护进程会自动启动。可以在终端中查看和控制状态:
sudo service cpulimit status
检查守护进程是否已启动。 如果没有,用以下命令启动。
sudo service cpulimit start
相反可以用以下命令终止:
sudo service cpulimit stop
卸载:
卸载可参考以下步骤:
1、停止守护进程
sudo service cpulimit stop
# 会终止 cpulimit 守护进程和一切受
cpulimit 控制的进程。
2、移除开机自启动
sudo update-rc.d -f cpulimit remove
# 移除符号链接
3、删除自启动脚本
sudo rm /etc/init.d/cpulimit
4、删除 cpulimit daemon 文件
sudo rm /usr/bin/cpulimit_daemon.sh
5、卸载 cpulimit 程序
sudo apt-get remove cpulimit
删除 gawk 与否看情况。
sudo apt-get remove gawk