Oracle保活脚本 作者: Hogwarts 发布于: 2023-04-20 更新于: 2023-09-20 分类: 默认分类 Idle Always Free计算实例可能会被 Oracle 回收。如果在 7 天内满足以下条件,则 Oracle 会将虚拟机和裸机计算实例视为空闲: CPU利用率低于 20% 网络利用率低于 20% 内存利用率低于 20% (仅适用于A1 形状)#指ARM机器 公告地址:`https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm` 不停机的标准,我的理解是这样的 - AMD机器:CPU和网络利用率其中一项高于20%即可。 AMD机器不看内存,AMD机器的内存是1G的,20%就是200M,一个Debian系统还得用64M呢。 - ARM机器:CPU、网络和内存利用率其中一项高于20%即可。 ARM机器内存最小6G,开的机器怎么也得12G吧,有封号停机的风险,不会运行很重要程序,一般内存使用率很难达到20%。 达不到要求仅停机而已,可在控制台重新启动。 #一、oalive脚本 ##1.1 开源地址 `https://github.com/spiritLHLS/Oracle-server-keep-alive-script` ##1.2 一键脚本 curl -L https://gitlab.com/spiritysdx/Oracle-server-keep-alive-script/-/raw/main/oalive.sh -o oalive.sh && chmod +x oalive.sh && bash oalive.sh 安装过程中无脑回车则全部可选择的占用都占用,不需要什么占用输入n再回车。 在探针中没看网络的变化,甲骨文下载不计流量,仅计算上行。 ##1.3 参考 [甲骨文云(Oracle Cloud)要清理闲置实例资源,附保活教程](https://51.ruyo.net/18289.html "甲骨文云(Oracle Cloud)要清理闲置实例资源,附保活教程") #二、keeporacle脚本 ##2.1 安装脚本 wget https://keeporacle.pages.dev/ -O keeporacle.sh && chmod +x keeporacle.sh && ./keeporacle.sh ##2.2 原理 每10秒下载一次`http://cachefly.cachefly.net/100mb.test`保证网络和CPU利用率 在ARM机上dd,10%内存大小的文件到/dev/shm/(这里为tmpfs)这里出现了问题,wget下载是吃不到10%的CPU占用的,所以新加了dd一个128M的文件然后删除去增加CPU利用率。 ##2.3 问题 该脚本貌似有问题,有时运行不大顺畅。 在探针中没看网络的变化,甲骨文下载不计流量,仅计算上行。 ##2.4 删除 crontab -e #编辑 crontab -l #查看 删除添加的那两行,然后rm -rf ~/keep* arm还要 rm /dev/shm/keep_oracle #删除内存占用 ##2.5 vast0906修改版 vim ~/keep_oracle/crontab.sh 保留第一行 `#!/bin/bash` ,其余用下列语句替换 while true; do wget http://cachefly.cachefly.net/100mb.test -O 100mb.test; dd if=/dev/zero of=100mb.test bs=1M count=128 ; sleep $( echo $RANDOM | cut -c 1-2 );done CPU占用有些高,需用`cpulimit`命令限制。 ##2.6 参考 `https://hostloc.com/thread-1131732-1-1.html` #三、计算圆周率 ##3.1 运行命令 apt install bc -y && apt install cpulimit -y nohup echo "scale=99999999;4*a(1)" | bc -lq > /dev/null & scale那个代表小数点后的位数,数越大计算时间越长 -l 那里可以控制cpu使用率0-200 -p 那里写程序的PID ##3.2 限制CPU进程 运行后CPU持续占用过大,需限制一下。 ps -aux | grep bc 将bc运行的PID数值填入下面命令中 L为要限制的百分比数值,不带%号;P为运行bc进程的`PID数值`。 nohup cpulimit -l L -p P >/dev/null & ##3.3 可能存在的问题 关闭SSH窗口后进程中止。用`screen`解决 apt install screen -y #安装 screen -S abc #创建一个名为abc的会话,或直接screen也行 nohup echo "scale=99999999;4*a(1)" | bc -lq > /dev/null & ps -aux | grep bc nohup cpulimit -l L -p P >/dev/null & ##3.4 参考 `https://hostloc.com/thread-1131769-1-1.html` 标签: oracle