贴一段shell用来占用cpu的代码

起因是这样子的..

我们的测试机预算进行了变更, 如果机器的利用率不够高, 就会被收回作为公用的机器. 利用率的判定是cpu+mem. 比如说连续多少天, cpu的使用率<10%就收回.

上有政策, 下有对策. 于是写了个专门耗cpu的shell代码, 很简单, 不过也很方便~~

#! /bin/sh
cd ${0%/*};root=`pwd`
# cpu的核数根据系统实际情况计算,跑的进程数和核数成正比
cpu=`cat /proc/cpuinfo | grep "processor" | wc -l`
#如果一个核只跑一个耗cpu的程序,实际大约会有百分之十几的使用率.如果觉得不够,直接乘一个常数就好了
((cpu=$cpu*4))
name="kc_bian"

function start()
{
#在当前目录产生n个shell程序,每个程序实际上就是不断地进行+1的运算
        for i in `seq $cpu`
        do
                echo -ne "#!/bin/sh
i=0; 
while true
do
        i=i+1;
        usleep 1;
done
" > ${root}/${name}_${i}.sh
                chmod +x ${root}/${name}_${i}.sh
#如果没有对应的脚本在跑,则运行.即防止重复运行
                ps aux | grep "${name}_${i}.sh" | grep -v "grep" >& /dev/null
                if [[ $? -ne 0 ]]; then
                        ${root}/${name}_${i}.sh &
                fi
        done
}

function stop()
{
#直接杀掉所有的脚本进程
        for i in `seq $cpu`
        {
                killall "${name}_${i}.sh"
        }
}

if [ $# != 1 ]; then
        echo "Usage: $0 start|stop"
        exit 1
fi

$1 $@

本文链接:https://www.poisonbian.com/post/2028.html 转载需授权!

分享到:
原文链接:,转发请注明来源!
「贴一段shell用来占用cpu的代码」评论列表

发表评论