若依(RuoYi)框架基于 Spring Boot 构建,其底层依赖包括 Spring Security、MyBatis-Plus、Redis、Druid 等组件。对于最低推荐配置,需要根据你的具体使用场景(开发环境 vs 生产环境)以及是否开启了额外模块(如定时任务、文件上传、多租户等)来区分。
以下是针对不同场景的详细分析:
1. 开发/测试环境
在本地开发或小型测试环境中,主要目标是保证代码能跑通且启动速度尚可。
- CPU:1 核 (vCPU)
- Spring Boot 的 Tomcat 容器和数据库连接池在单核下足以应对低并发请求。
- 内存:2 GB (RAM)
- JDK 本身占用约 300MB-500MB。
- 若依默认内置 H2 或 MySQL 驱动,加上应用启动时的类加载和缓存,2GB 是比较稳妥的底线。如果开启 Redis 和 MySQL 本地运行,建议至少 4GB。
- 注意:如果内存低于 2GB,JVM 可能会频繁触发 Full GC,导致响应变慢甚至 OOM(Out Of Memory)。
2. 生产环境(标准业务场景)
这是大多数中小型企业部署若依框架的标准配置。考虑到 JVM 堆内存分配(通常设置为物理内存的 50%-75%)、操作系统预留空间以及可能的中间件(如独立的 Redis/MySQL 服务器),配置如下:
- CPU:2 核 (vCPU)
- 若依包含大量拦截器、权限校验逻辑和数据库操作,双核能有效避免 CPU 争用,保证接口响应时间(RT)稳定。
- 内存:4 GB (RAM)
- JVM 堆内存:可安全分配 2GB – 3GB (
-Xmx),足以支撑较大的对象缓存和会话数据。 - 系统冗余:剩余内存用于操作系统缓存、线程栈及突发流量缓冲。
- 在此配置下,应用通常可以承载 100-300 QPS 的并发量(视具体业务复杂度而定)。
- JVM 堆内存:可安全分配 2GB – 3GB (
3. 生产环境(高并发/复杂业务)
如果你的应用涉及复杂的报表生成、大量文件处理、高频的定时任务或作为核心微服务之一:
- CPU:4 核及以上
- 内存:8 GB 及以上
- 此时可能需要将 JVM 堆内存调至 6GB+,并配合外部化的 Redis 集群和 MySQL 主从架构。
关键优化建议
无论选择何种配置,为了降低资源消耗,建议在 application.yml 或 bootstrap.yml 中进行以下调整:
- 关闭非必要模块:若依项目结构庞大,如果不需要“代码生成”、“系统监控”、“定时任务”等模块,请在启动时通过
--spring.profiles.active=dev,prod排除相关配置,或在pom.xml中移除对应依赖。 - 调整 JVM 参数:
- 不要使用默认的
-Xms和-Xmx自动计算,建议显式指定为一致值以减少动态扩容开销。例如在 4GB 机器上设置-Xms2g -Xmx2g。
- 不要使用默认的
- 数据库与缓存分离:
- 务必将 MySQL 和 Redis 部署在独立的服务器上,不要让它们与应用进程共用同一台机器的内存,否则极易导致内存溢出。
总结结论
| 场景 | 推荐 CPU | 推荐内存 | 备注 |
|---|---|---|---|
| 本地开发/学习 | 1 核 | 2 GB | 需确保不运行额外的 DB/Redis 容器 |
| 生产环境 (标准) | 2 核 | 4 GB | 最推荐的起步配置,兼顾性能与成本 |
| 生产环境 (高负载) | 4 核 + | 8 GB + | 适用于用户量大或业务逻辑复杂的场景 |
最终建议:如果是首次上线生产环境,2 核 4G 是性价比最高且风险最小的“黄金标准”配置。
云服务器