若依(RuoYi-Vue)基于 Spring Boot + Vue 的前后端分离架构,其生产环境部署的最低配置需求取决于并发量、业务复杂度以及是否开启其他组件。
对于个人学习、内部小工具或极低并发(日均访问 < 100)的场景,最低配置如下:
1. 核心结论:最低配置建议
- CPU: 2 核 (vCPU)
- 内存: 4 GB RAM
- 硬盘: 40 GB SSD (系统盘 + 日志 + 数据库数据)
- 操作系统: CentOS 7.9 / Ubuntu 20.04 LTS 或更高版本
- 网络带宽: 5 Mbps – 10 Mbps (视图片/文件资源而定)
注意:虽然理论上 1 核 2G 也能跑通,但在生产环境中,Spring Boot 启动本身就需要占用较多内存,且 Java 进程在低配下容易出现 Full GC 导致服务卡顿。因此,2 核 4G 是目前保证稳定运行的“绝对底线”。
2. 详细资源拆解分析
若依项目通常包含以下组件,需分别考虑资源占用:
A. 后端服务 (Spring Boot)
- JVM 内存:默认堆内存可能占用较大。如果服务器只有 4G 内存,建议将 JVM 初始堆 (
-Xms) 和最大堆 (-Xmx) 设置为1g或1.5g,预留空间给操作系统和其他进程。 - 启动耗时:在低配服务器上,Spring Boot 启动可能需要 30-60 秒。
B. 前端服务 (Nginx)
- 静态资源:Vue 打包后的
dist目录非常轻量,Nginx 处理静态文件几乎不消耗 CPU,主要消耗少量内存。 - 反向X_X:Nginx 作为网关转发请求,开销极小。
C. 数据库 (MySQL)
这是最耗资源的组件。
- InnoDB Buffer Pool:MySQL 默认会尝试使用大量物理内存。在 4G 总内存的服务器上,必须手动调整
my.cnf,将innodb_buffer_pool_size限制在 1G – 1.5G,否则会导致 OOM(内存溢出)崩溃。 - 连接数:低配下不建议设置过大的
max_connections。
D. 缓存与中间件 (Redis)
- Redis:若依默认集成 Redis。Redis 是纯内存数据库,至少需要预留 256MB – 512MB 内存用于存储热点数据。如果不使用 Redis(仅用本地缓存),可节省这部分内存,但会牺牲性能。
E. 其他依赖 (可选但常见)
- MinIO / FastDFS:如果开启文件上传服务,这些对象存储服务也会占用额外的 CPU 和磁盘 IO。
- Docker/K8s:如果使用 Docker 容器化部署,宿主机会额外损耗约 10%-15% 的资源用于容器管理。
3. 关键优化建议(针对低配服务器)
如果你只能申请到 2 核 4G 甚至更低的服务器,请务必执行以下优化操作,否则极易出现“服务假死”或频繁重启:
-
JVM 参数调优:
在启动脚本中添加:JAVA_OPTS="-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m"解释:强制限制堆内存不超过 1G,防止吃光内存。
-
MySQL 参数调优:
修改/etc/my.cnf:[mysqld] innodb_buffer_pool_size = 1G max_connections = 100 key_buffer_size = 32M -
关闭非必要功能:
- 如果不需要定时任务,可在
application.yml中关闭spring.task.execution.pool.enabled相关配置。 - 如果不需要代码生成器接口,直接移除相关 Controller。
- 关闭 Swagger/Knife4j 文档(生产环境应禁用)。
- 如果不需要定时任务,可在
-
开启 Swap (虚拟内存):
在 Linux 上创建一个 2GB – 4GB 的 Swap 分区。当物理内存耗尽时,系统会使用硬盘交换,虽然速度慢,但能防止进程直接被杀(OOM Killer)。# 示例:创建 2G swap 文件 dd if=/dev/zero of=/swapfile bs=1M count=2048 chmod 600 /swapfile mkswap /swapfile swapon /swapfile
4. 总结与推荐方案
| 场景 | 推荐配置 | 说明 |
|---|---|---|
| 极限测试/学习 | 2 核 2G | 风险高,需深度调优 MySQL 和 JVM,仅适合单机演示,不可用于正式业务。 |
| 生产环境最低 | 2 核 4G | 推荐底线。配合上述优化参数,可支撑小型企业内网应用或日活几百人的网站。 |
| 标准生产环境 | 4 核 8G | 舒适区。无需过度调优,可应对中等并发,运行更稳定,日志留存时间更长。 |
| 高并发/大数据 | 8 核 16G+ | 需引入负载均衡集群,数据库读写分离。 |
最终建议:
如果是为了上线正式项目,请尽量申请 2 核 4G 起步。如果预算极其有限只能买 1 核 2G,强烈建议将数据库(MySQL)和 Redis 迁移到云厂商提供的免费/低价托管版 RDS,让应用服务器只负责计算逻辑,这样能大幅降低本地服务器的内存压力。
CLOUD技术博