“Ruoyi-Vue + SpringBoot” 是一个前后端分离的开源快速开发框架,前端使用 Vue.js,后端基于 Spring Boot。在部署时的内存占用取决于多个因素,但我们可以给出一个大致范围和影响因素分析。
一、典型内存占用(生产环境参考)
| 组件 | 内存占用(估算) |
|---|---|
| SpringBoot 后端服务 | 512MB ~ 1.5GB JVM 堆内存 |
| Vue 前端(Nginx 静态部署) | 极低,通常 < 50MB |
| 数据库(如 MySQL) | 单独计算,约 512MB ~ 2GB+ |
⚠️ 注意:这里主要关注 Ruoyi 后端(SpringBoot 应用)的内存占用。
二、SpringBoot 后端内存详解
1. 默认 JVM 设置下的内存
- 若未显式设置 JVM 参数,JVM 会根据机器配置自动分配堆内存。
- 一般情况下:
- 最小堆(-Xms):默认可能为 128MB ~ 512MB
- 最大堆(-Xmx):默认可能为 512MB ~ 1GB
2. 实际运行建议配置(以 Ruoyi 为例)
java -Xms512m -Xmx1024m -jar ruoyi-admin.jar
- 启动后稳定运行时,堆内存占用通常在 300MB ~ 800MB 之间。
- 若开启监控(如 Spring Boot Admin、Prometheus)、日志级别较细、用户并发较多,可能接近 1GB。
3. 影响内存的因素
| 因素 | 对内存的影响 |
|---|---|
| 用户并发量 | 并发越高,线程、缓存占用越多 |
| 是否启用 Redis 缓存 | 减少数据库压力,但增加网络和序列化开销 |
| 日志级别(DEBUG vs INFO) | DEBUG 会显著增加日志输出和内存临时对象 |
| 是否集成定时任务、消息队列等 | 功能越多,内存占用越高 |
| JVM 本身元空间(Metaspace) | 加载类多时,元空间可达 100~200MB |
三、前端 Vue 部署内存
- 使用 Nginx 托管静态资源,内存占用非常低。
- Nginx 进程通常只占用 20MB ~ 50MB,非常轻量。
四、推荐部署资源配置(单机版)
| 资源 | 推荐配置 |
|---|---|
| CPU | 2 核 |
| 内存 | 2GB ~ 4GB(系统 + Java + DB) |
| 磁盘 | 50GB SSD |
| JVM 堆内存 | -Xms512m -Xmx1024m |
💡 示例:若使用 2GB 内存 VPS,建议:
- SpringBoot:-Xmx1024m
- MySQL:限制内存使用(如
innodb_buffer_pool_size=512M)- 系统和其他进程:预留 512MB
五、如何查看实际内存占用?
-
运行时监控命令:
# 查看 Java 进程内存使用 jstat -gc <pid> top -p <pid> # 或使用 ps -p <pid> -o %mem,vsz,rss -
Spring Boot Actuator 监控:
访问/actuator/metrics/jvm.memory.used获取 JVM 内存指标。
六、优化建议
- 生产环境关闭 debug 模式和 devtools。
- 合理设置 JVM 参数,避免内存溢出或浪费。
- 使用 Nginx 反向X_X + 静态资源分离。
- 数据库与应用服务尽量分离部署。
总结
✅ Ruoyi-Vue + SpringBoot 后端服务内存占用大致为:
最小 300MB,常规运行 600~800MB,建议分配 1GB 堆内存(-Xmx1024m)
加上系统、前端、数据库,整套系统建议至少 2GB 内存的服务器,4GB 更为稳妥。
如需支持高并发或大数据量,应进一步优化和扩容。
如有具体部署场景(如 Docker、云服务器型号),可提供更精确建议。
云计算导航