Linux下有《cpulimit》软件可以对cpu使用进行控制,可以达到保护系统服务的目的
但这个软件使用起来有诸多限制,并且只能对现已存在的进程进行限制
因此就有了以下脚本,设置此脚本为随机自启动即可,它会对所有进程(包括新建进程)进行监控并限制(3秒检测一次,CPU限制为75%)
当然需要服务器上安装了cpulimit才行,另外需要将log路径修改为本机路径
#!/bin/bash
while true ; do
id=`ps -ef | grep cpulimit | grep -v "grep" | awk '{print $10}' | tail -1`
nid=`ps aux | awk '{ if ( $3 > 75 ) print $2 }' | head -1`
if [ "${nid}" != "" ] && [ "${nid}" != "${id}" ] ; then
cpulimit -p ${nid} -l 75 &
echo "[`date`] CpuLimiter run for ${nid} `ps -ef | grep ${nid} | awk '{print $8}' | head -1`" >> /home/wafly/workspace/log/CpuLimiter.log
fi
sleep 3
done