[Linux] 对超额使用CPU的任务进程自动进行限制

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 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值