简介
近期甲骨文出台了政策,将对闲置的服务器进行停机或者回收处理,为了防止被删,网上各路大神也出了很多教程来让服务器高负载,不过大多数都是试用 shell 脚本循环计算,dd 复制空文件或者一些类似 lookbusy 等第三方软件来模拟高负载。
不过作为洁癖党,总是会避免安装一些不太了解的第三方软件,也但是一些脚本后台运行出问题,或者时间长了忘记了,所以还是觉得把脚本跑在 docker 里最合适,也最方便管理。可以做到想开就开,想关就关,还可以配合 crontab 定时开关。
本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.
教程
原理很简单,就是写了一段最简单的循环计算 shell 脚本,在 alpine 容器内部执行。只需要控制 docker 的启动和停止即可。
CPU 占用效果
启动此容器后 CPU 占用大致效果图
docker
启动命令
docker run -d --name keeporaclealive --rm alpine sh -c "while true; do for i in {1..100000}; do j=$((i*i)); done; done"
停止命令
docker stop keeporaclealive
注意:上述启动命令加入了--rm
参数,停止容器将自动删除容器,不会残留到系统中。
docker compose
同时也可以用 docker compose 来管理,这样启动和停止命令会更加方便。
mkdir keeporaclealive cd keeporaclealive vi docker-compose.yml # 创建 keeporaclealive 目录并新建 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: unless-stopped
启动和停止可以用以下命令控制:启动和停止可以用以下命令控制:
docker-compose up -d # 开始 docker-compose down # 停止
crontab 定时任务,每日 10 点启动,每日 14 点停止。
根据自身情况修改 /root/keeporaclealive 目录地址
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