贴一段 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 的代码」评论列表

发表评论