一、 方案背景与设计思路
为了确保甲骨文云(Oracle Cloud)免费套餐实例的长期稳定性,避免因系统判定“资源空闲”而导致的实例回收,我们需要构建一个具有持续活跃特征的业务环境。
本方案的核心思路是通过部署真实的内容管理系统(CMS)来模拟生产环境负载:
持续进程活跃:利用 Halo (Java) 与 PostgreSQL 建立常驻系统服务进程。
周期性 IO 负载:通过自动化全量备份产生规律性的 CPU 压缩与磁盘写入动作,模拟真实的业务维护周期。
可视化管理:引入 CasaOS 看板,实现对系统活跃度的直观监控。
二、 运行环境初始化
在部署新业务前,请确保清理旧有的冲突配置,并安装轻量化管理面板:
Bash
# 1. 强制清理可能残留的旧版容器与数据
docker rm -f halo db-halo
sudo rm -rf /DATA/AppData/halo /DATA/AppData/halo-db
# 2. 安装 CasaOS 可视化管理面板
curl -fsSL https://get.casaos.io | sudo bash
三、 核心业务部署:Halo 2.x + PostgreSQL
在 CasaOS 界面选择 Custom Install -> Import,粘贴以下 Docker Compose 配置。该配置已针对甲骨文 ARM 架构优化,采用轻量化镜像以节省资源。
YAML
version: "3"
services:
halo:
image: halohub/halo:latest
container_name: halo
restart: always
ports:
- "8090:8090"
volumes:
- /DATA/AppData/halo:/root/.halo2
environment:
- HALO_EXTERNAL_URL=http://你的服务器IP:8090
- HALO_DB_TYPE=postgresql
- HALO_DB_HOST=db-halo
- HALO_DB_PORT=5432
- HALO_DB_NAME=halo
- HALO_DB_USER=halo
- HALO_DB_PASSWORD=YourSecurePassword # 请自定义数据库密码
depends_on:
db-halo:
condition: service_healthy
db-halo:
image: postgres:15-alpine
container_name: db-halo
restart: always
volumes:
- /DATA/AppData/halo-db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=halo
- POSTGRES_USER=halo
- POSTGRES_PASSWORD=YourSecurePassword
healthcheck:
test: ["CMD-SHELL", "pg_isready -U halo"]
interval: 10s
timeout: 5s
retries: 5
四、 关键活跃度优化配置
部署完成后,需通过以下设置确保实例的“资源活跃度”符合云服务商的留存标准:
1. 开放业务通讯端口
确保宿主机防火墙允许业务端口通行:
Bash
sudo iptables -I INPUT -p tcp --dport 8090 -j ACCEPT
sudo netfilter-persistent save
注:同时需在甲骨文云后台“虚拟云网络”的安全列表中入站放行 8090 端口。
2. 建立周期性任务调度 (关键)
进入 Halo 后台,通过官方插件实现自动化的资源占用:
安装插件:在“应用中心”搜索并安装 “备份与恢复”。
创建任务:进入 系统 -> 定时任务,新建一个“全量备份”任务。
调度策略:推荐使用 Cron 表达式
0 0 */6 * * ?(每 6 小时执行一次)。策略意义:全量备份涉及对博客附件的扫描、压缩及加密。建议在博客中上传部分多媒体素材,使备份包维持在一定体积,从而产生明显的、符合真实业务特征的 CPU 波动尖峰。
五、 运行状态监测
通过 CasaOS 仪表盘,建议关注以下指标:
基础水位:CPU 保持在 5%-8% 的常驻占用。
周期波动:每 6 小时观察到一次持续约 1 分钟的 CPU 与 IO 显著增长。
这种“有规律、有波动、有真实业务”的运行状态,是维护甲骨文云免费实例长期稳定运行的最佳实践。