若依(RuoYi-Vue)基于 Spring Boot + Vue 的架构,其生产环境部署的最低配置取决于并发量、业务复杂度以及是否包含其他组件。
对于大多数中小型项目(如内部管理系统、小型 SaaS 应用),1 核 2G 是绝对的理论极限,但强烈不建议长期在此配置下运行。以下是详细的配置分析与建议:
1. 核心结论:推荐起步配置
| 场景 | CPU | 内存 (RAM) | 磁盘 | 适用情况 |
|---|---|---|---|---|
| 理论最低 | 1 核 | 2 GB | 40 GB SSD | 仅用于开发测试、极低流量(<50 PV/天)、无复杂报表或文件处理 |
| 推荐起步 | 2 核 | 4 GB | 60 GB SSD | 正式生产环境标准配置,可支撑日常办公系统、少量并发用户 |
| 稳定运行 | 4 核 | 8 GB | 80 GB+ SSD | 中大型项目、有较多定时任务、图片/文件上传、高并发查询 |
2. 详细资源分析
A. 内存 (RAM) – 最关键瓶颈
若依后端基于 Spring Boot,JVM 默认会占用较多内存。
- Java 进程:Spring Boot 启动后,即使空载,JVM 通常也会占用 300MB~500MB 内存。随着业务逻辑加载和缓存构建,轻松突破 800MB。
- 数据库 (MySQL):若在同一台服务器部署 MySQL,InnoDB 缓冲池默认配置可能占用几百 MB 到 1GB+。
- Nginx:前端静态资源服务,占用较小,约 50MB。
- 操作系统:Linux 系统本身需要预留 200MB~300MB。
结论:
- 2GB 内存:非常紧张。如果开启 MySQL,极易触发 OOM(内存溢出)导致服务崩溃,或者频繁 Swap 交换分区导致性能极差。
- 4GB 内存:比较安全。可以分配 2GB 给 Java (Xmx),1GB 给 MySQL,剩余给系统和 Nginx。
B. CPU
- 计算密集型:若依后端主要是 IO 密集型和简单的业务逻辑,单核在低并发下表现尚可。
- 并发处理:Spring Boot 默认线程池大小有限。当并发请求增加时,1 核 CPU 容易达到 100% 使用率,导致接口响应变慢甚至超时。
- 建议:至少 2 核 以保证在多用户同时操作时的流畅度。
C. 磁盘与网络
- 磁盘:必须使用 SSD。机械硬盘会导致数据库查询和日志写入极其缓慢。空间方面,考虑到日志滚动和可能的附件存储,40GB 是底线,建议 60GB+。
- 网络:若依通常作为后台管理,对带宽要求不高,但如果是对外提供 API 或大量下载文件,需关注公网带宽。
3. 部署架构对配置的影响
服务器的配置需求还取决于你的部署方式:
方案一:单机部署(所有服务在一台服务器)
- 内容:Nginx + Java (Jar) + MySQL + Redis。
- 风险:资源争抢严重。
- 最低建议:2 核 4G。
- 此时必须优化 JVM 参数(
-Xms2g -Xmx2g)和 MySQL 配置(innodb_buffer_pool_size=1g),否则 4G 内存根本不够用。
- 此时必须优化 JVM 参数(
方案二:分离部署(推荐)
- 内容:
- 应用服务器:1 核 2G 或 2 核 4G(只跑 Nginx + Java)。
- 数据库服务器:单独一台(2 核 4G 起)。
- 优势:互不影响,稳定性大幅提升。
- 最低建议:
- 应用服:1 核 2G(勉强可用,仅限极简业务)。
- 数据服:1 核 2G(仅存少量数据,读写压力不大时)。
4. 关键优化建议(针对低配服务器)
如果你受限于预算,必须在 1 核 2G 上运行生产环境,请务必执行以下优化:
-
JVM 调优:
在java启动命令中强制限制内存,防止被系统杀掉:java -Xms512m -Xmx512m -jar ruoyi-admin.jar注意:内存设得太小可能导致 Full GC 频繁,影响性能。
-
关闭不必要的功能:
- 若依自带的 Swagger/Knife4j 文档在生产环境务必关闭,减少内存占用和启动时间。
- 关闭非必要的定时任务。
-
数据库优化:
- 将 MySQL 的
max_connections调低。 - 确保 MySQL 配置文件 (
my.cnf) 中的innodb_buffer_pool_size设置为物理内存的 50%-70%(例如 2G 内存设 1G)。 - 最佳实践:将 MySQL 迁移到云厂商提供的 RDS 服务(按量付费),虽然增加了成本,但省去了维护数据库的性能开销和稳定性风险。
- 将 MySQL 的
-
使用 Docker 编排:
使用 Docker Compose 部署,并设置严格的mem_limit和cpu_quota,防止某个容器占满资源导致整个服务器宕机。
总结
- 如果不差钱/追求稳定:请直接选择 2 核 4G 的云服务器(单机部署)或 2 核 4G (App) + 2 核 4G (DB)(分离部署)。这是保证若依系统流畅运行的“甜蜜点”。
- 如果预算极度紧张:可以使用 1 核 2G,但必须做好 JVM 内存限制,且仅适用于用户数极少(如 <20 人在线)的内部演示或测试环境,不建议承载正式的生产业务。
云计算