近期,甲骨文宣布将对长时间闲置的云服务器进行停机或回收。为避免资源被回收,许多用户尝试通过各种方式来增加服务器的负载,例如使用 shell 脚本循环计算、dd 复制空文件等方式。本文介绍一种较为“洁净”的方法,即将脚本放入 Docker 容器中运行,方便管理且安全可控。

方法简介
本方案采用一个轻量的 alpine Docker 容器,内部运行一个简单的循环计算脚本,适度提高服务器 CPU 使用率。Docker 管理带来了灵活性,允许随时启动或停止容器,同时可借助 crontab 实现定时控制。
CPU 负载效果
启动容器后,CPU 会持续保持适度负载,满足甲骨文的在线检测条件。
方案实现
使用 Docker 直接运行容器
启动命令
运行以下命令创建并启动容器,容器内执行循环计算,达到 CPU 持续占用的目的:
docker run -d --name keeporaclealive --rm alpine sh -c "while true; do for i in {1..100000}; do j=$((i*i)); done; done"
--rm参数:容器停止后自动删除,避免系统中残留无用的容器。
停止命令
docker stop keeporaclealive
Docker 常驻启动
如果希望容器在服务器重启后自动启动,可使用以下命令:
docker run -d --name keeporaclealive --restart always alpine sh -c "while true; do for i in {1..100000}; do j=$((i*i)); done; done"
--restart always参数:确保服务器重启后容器自动启动。
停止与删除容器
docker stop keeporaclealive # 停止服务,但容器不会被删除
docker start keeporaclealive # 再次启动容器
docker rm keeporaclealive # 停止后删除容器
使用 Docker Compose 管理容器
若需更便捷的启动与管理,可以使用 Docker Compose。
- 创建配置文件
mkdir keeporaclealive
cd keeporaclealive
vi docker-compose.yml
- 在
docker-compose.yml中写入以下内容:
version: '3'
services:
keeporaclealive:
image: alpine
command: 'sh -c"while true; do for i in $$(seq 1 100000); do j=$$[i*i]; done; done"'
restart: always
- 启动与停止服务:
docker-compose up -d # 启动服务
docker-compose down # 停止服务
使用 Crontab 定时控制
如果不希望容器全天运行,可以设置定时任务,每天 10 点启动,14 点停止。
- 编辑 Crontab 任务:
crontab -e
- 添加以下任务:
0 10 * * * cd /root/keeporaclealive && /usr/local/bin/docker-compose up -d
0 14 * * * cd /root/keeporaclealive && /usr/local/bin/docker-compose down
总结
此方案利用 Docker 容器控制服务器负载,以防甲骨文服务器因闲置而被回收。通过 Docker Compose 和定时任务的配合,容器启动与停止更为灵活、便捷。
正文完