甲骨文官现在要收回闲置实例资源,使用率不高的免费实例可能会被清理。如果七天内符合以下条件,则 Oracle 会将免费实例视为空闲,并被回收。
- 95%时间CPU利用率低于10%
- 网络利用率低于10%
- 内存利用率低于 10% (仅适用于A1 形状)(ARM实例)
1.1 计算圆周率占用CPU保活
nohup echo "scale=99999999;4*a(1)" | bc -lq > /dev/null &
nohup cpulimit -l 30 -p 22489 >/dev/null &
scale那个代表小数点后的位数,数越大计算时间越长
-l 那里可以控制cpu使用率0-200
-p 那里写程序的PID,通过top命令查找,
或者 ps -aux | grep bc
运行以上指令后,执行 exit 命令,
再关闭窗口退出 xshell,后台命令不会终止
或者直接 Shell 死循环:
nohup cpulimit -l 30 bash -c "while :;do a=1;done" > /dev/null 2>&1 &
如果报错,安装一下bc
apt install bc -y && apt install cpulimit -y
1.2 NeverIdle
项目地址:https://github.com/layou233/NeverIdle
服务器安装 wget screen
yum install -y wget screen
下载编译后的可执行文件
AMD服务器
wget https://github.com/layou233/NeverIdle/releases/download/0.1/NeverIdle-linux-amd64 -O NeverIdle
ARM
wget https://github.com/layou233/NeverIdle/releases/download/0.1/NeverIdle-linux-arm64 -O NeverIdle
修改文件权限
chmod 777 NeverIdle
使用screen运行程序
screen -S neverIdle
启动程序
./NeverIdle -c 2h -m 2 -n 4h
挂起screen 按 Ctrl + A + D
再次进入screen
screen -R neverIdle
命令参数:
./NeverIdle -c 2h -m 2 -n 4h
选项:
-c 指启用 CPU 定期浪费,后面跟随每次浪费的间隔时间。如每12小时23分钟34秒浪费一次,则为 12h23m34s。按照格式填。
-m 指启用浪费的内存量,后面是一个数字,单位为GiB。启动后会占用对应量的内存,并且保持不会释放,直到手动杀死进程。
-n 指启用网络定期浪费,后面跟随每次浪费的间隔时间。格式同 CPU。会定期执行一次 Ookla Speed Test(还会输出结果哦!)
1.3 SHELL脚本
#!/bin/bash
echo "欢迎使用甲骨文保活脚本"
echo "1.AMD"
echo "2.ARM"
read -p "请选择" choice
if (($choice == 1)); then
mkdir -p ~/keep_oracle
cat <<EOF >~/keep_oracle/crontab.sh
#!/bin/bash
for (( i = 0; i < 5; i+=1)); do
wget --limit-rate=10m http://cachefly.cachefly.net/100mb.test -O /tmp/100mb.test
sleep 10
dd if=/dev/zero of=/tmp/test bs=1M count=128
done
exit 0
EOF
chmod +x ~/keep_oracle/crontab.sh
crontab -l > conf
echo "* * * * * ~/keep_oracle/crontab.sh" >> conf
crontab conf
rm -f conf
crontab -l
echo "脚本结束,如果新增了一条crontab即为运行成功"
elif (($choice == 2)); then
mkdir -p ~/keep_oracle
cat <<EOF >~/keep_oracle/crontab.sh
#!/bin/bash
for (( i = 0; i < 5; i+=1)); do
wget --limit-rate=10m http://cachefly.cachefly.net/100mb.test -O /tmp/100mb.test
sleep 10
dd if=/dev/zero of=/tmp/test bs=1M count=128
done
exit 0
EOF
dd if=/dev/zero of=/dev/shm/keep_oracle bs=1K count=`cat /proc/meminfo |grep 'MemTotal' |awk -F : '{print $2}' |sed 's/^[ \t]*//g'|sed 's/ kB//'|sed 's/.$//g'`
chmod +x ~/keep_oracle/crontab.sh
crontab -l > conf
echo "* * * * * ~/keep_oracle/crontab.sh" >> conf
echo "@reboot dd if=/dev/zero of=/dev/shm/keep_oracle bs=1K count=`cat /proc/meminfo |grep 'MemTotal' |awk -F : '{print $2}' |sed 's/^[ \t]*//g'|sed 's/ kB//'|sed 's/.$//g'`" >> conf
crontab conf
rm -f conf
crontab -l
echo "脚本结束,如果新增了两条crontab即为运行成功"
fi
评论 (0)