RuoYi-Cloud 是基于 Spring Cloud 微服务架构的,这意味着它包含多个独立的进程(如 Nacos、Gateway、Auth、System、Job 等),相比单体应用,它对内存(RAM)和CPU的要求更高。
运行 RuoYi-Cloud 的最低配置取决于你的部署模式(是开发调试还是生产环境)以及是否开启高可用。以下是具体的配置建议:
1. 核心结论速览
| 场景 | CPU (核) | 内存 (GB) | 硬盘 (GB) | 适用情况 |
|---|---|---|---|---|
| 极限最低 (开发/测试) | 2 核 | 4 GB | 20+ | 仅用于本地开发或极轻量级演示,极易出现 OOM (内存溢出) |
| 推荐入门 (生产/正式) | 4 核 | 8 GB | 50+ | 最稳妥的配置,能流畅运行所有微服务及数据库缓存 |
| 生产标准 (高可用) | 8 核 + | 16 GB + | 100+ | 支持多节点部署、高并发访问及数据备份 |
2. 详细资源分析
A. 内存 (RAM) – 最关键瓶颈
RuoYi-Cloud 启动时会加载大量的微服务组件,每个组件都是独立的 JVM 进程。
- JVM 开销:每个微服务实例默认需要分配一定的堆内存(Heap)。如果服务器只有 4GB 内存,Nacos、Redis、MySQL 和各个微服务(User, System, Gen 等)会争抢资源,导致频繁 GC 甚至直接崩溃。
- 中间件需求:
- Nacos:作为注册中心和配置中心,至少需要 2GB 内存才能稳定运行(特别是开启了持久化存储时)。
- Redis:虽然占用较少,但需预留缓冲。
- MySQL:官方推荐至少 2GB 给 MySQL 缓存。
- 微服务集群:剩余内存需分给 Gateway, Auth, System, Job 等 5-6 个服务,每个至少分配 512MB-1GB。
- 结论:4GB 是物理极限,8GB 是舒适线。
B. CPU (核心数)
- 微服务之间的调用涉及网络 IO 和序列化/反序列化。
- 2 核:在低并发下可以跑通,但一旦有用户登录或查询操作,CPU 使用率容易飙升到 100%,导致响应延迟。
- 4 核:足以应对日常开发和中小型业务的生产环境。
C. 硬盘与系统盘
- 操作系统:Linux (CentOS 7/8, Ubuntu 20.04+) 需要约 10-15GB。
- 依赖组件:Docker (如果使用 Docker 部署)、MySQL 数据文件、Nacos 日志、各服务日志。
- 建议:系统盘至少预留 30GB,若使用 Docker Compose 一键部署,建议直接给 50GB 以防日志爆满。
3. 不同部署方式的影响
方案一:Docker / Docker Compose 部署(推荐)
这是 RuoYi-Cloud 官方推荐的部署方式。
- 优势:隔离性好,依赖管理方便。
- 劣势:Docker 容器本身有少量开销,且所有容器共享宿主机资源。
- 配置要求:必须严格遵守上述“推荐入门”配置(4 核 8G),否则容器启动后很容易因为 OOM Killer 被杀掉。
方案二:Jar 包直接部署 (传统方式)
- 优势:节省部分 Docker 层开销。
- 劣势:需要手动安装 JDK, MySQL, Redis, Nacos 等,环境维护复杂。
- 配置要求:理论上比 Docker 略省一点内存,但在 4GB 总内存下依然非常吃力,建议同样遵循 4 核 8G。
方案三:Kubernetes (K8s) 部署
- 如果是生产环境大规模使用 K8s,通常不会单台机器运行所有服务,而是通过 Pod 调度分散到多台机器上。此时单台机器的配置可以稍低,但集群总资源不能低于上述标准。
4. 优化建议(如果硬件受限)
如果你只能提供 2 核 4G 的服务器进行开发或测试,可以通过以下手段勉强运行:
- 调整 JVM 参数:
修改bootstrap.yml或启动脚本,强制降低各服务的-Xms和-Xmx值(例如限制为 256M 或 384M)。# 示例:在启动参数中限制 JAVA_OPTS="-Xms256m -Xmx512m" - 精简服务:
不要启动所有模块。只启动必要的服务(如 Nacos, Gateway, Auth, System),暂时关闭ruoyi-job(定时任务) 或ruoyi-gen(代码生成) 等非核心服务。 - 使用轻量级替代:
- 将 Nacos 的持久化模式改为内存模式(重启丢失数据,仅限测试)。
- 使用 SQLite 或 H2 数据库代替 MySQL(仅限纯开发,生产不可用)。
- 关闭不必要的监控:
关闭 Spring Boot Admin 或某些过重的链路追踪组件。
总结
为了获得正常的开发体验和避免频繁的内存溢出报错:
- 最低可行配置:2 核 CPU / 4 GB 内存(仅限开发调试,体验较差)。
- 推荐配置:4 核 CPU / 8 GB 内存(性价比最高,能完整运行所有微服务)。
云知识CLOUD