起因是这样子的..
我们的测试机预算进行了变更, 如果机器的利用率不够高, 就会被收回作为公用的机器. 利用率的判定是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 转载需授权!