“RuoYi-Vue + SpringBoot” 是一个基于前后端分离架构的开源管理系统,前端使用 Vue.js,后端使用 SpringBoot。在部署时的内存占用情况取决于多个因素,但我们可以给出一个大致的参考范围。
一、SpringBoot 后端内存占用(JVM)
SpringBoot 应用默认启动时 JVM 会分配一定的堆内存(Heap Memory),实际使用量取决于应用复杂度、并发量、数据库连接、缓存等。
典型配置与内存占用:
| 配置/场景 | 堆内存(-Xmx) | 实际 JVM 内存占用 | 备注 |
|---|---|---|---|
| 开发/测试环境,默认配置 | 256MB ~ 512MB | 300MB ~ 600MB | 未优化,含日志、监控等 |
| 生产环境推荐配置 | -Xms512m -Xmx1024m(1GB) | 约 800MB ~ 1.2GB | 包括堆外内存 |
| 轻量级部署(精简功能) | -Xmx512m | 400MB ~ 600MB | 关闭监控、简化日志 |
| 高并发/大数据量 | -Xmx2g 或更高 | 2GB+ | 含缓存、线程池等 |
💡 说明:
- JVM 总内存 = 堆内存 + 元空间(Metaspace)+ 线程栈 + 直接内存等,通常总内存比
-Xmx高 20%~50%。- RuoYi 默认集成了 Redis、Quartz 定时任务、Druid 监控、Swagger 等组件,会增加内存开销。
二、前端 Vue 部署内存占用
Vue 打包后的前端是静态资源(HTML/CSS/JS),部署在 Nginx 或 CDN 上,运行时不占用 Java 内存。
- 构建过程(
npm run build)会临时占用较多内存(1GB+),但构建完成后,部署只需 Web 服务器(如 Nginx)提供静态文件服务。 - Nginx 自身内存占用很低,通常几十 MB。
三、整体部署建议
| 部署方式 | 推荐最小内存 | 说明 |
|---|---|---|
| 单机部署(开发/演示) | 2GB RAM | SpringBoot(1GB) + MySQL(500MB) + Nginx(100MB) |
| 生产环境(中等负载) | 4GB RAM | 可支持几十人并发,带 Redis 缓存 |
| 高可用/高并发 | 8GB+ RAM | 分布式部署,多实例负载均衡 |
四、如何降低内存占用?
- JVM 参数调优:
java -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -jar ruoyi-admin.jar - 关闭不必要的模块:
- 移除 Swagger(生产环境)
- 禁用 Druid 监控页
- 移除未使用的定时任务
- 使用轻量数据库连接池(如 HikariCP 已是默认)
- 前端部署到 CDN 或独立 Nginx,减轻后端压力
✅ 总结
- SpringBoot 后端:正常运行约 800MB ~ 1.2GB 内存(JVM 总占用)
- 前端 Vue:静态部署,几乎不占 Java 内存
- 整套系统(后端 + DB + Nginx):建议至少 2GB 内存 的服务器用于测试,4GB 以上 用于生产
如果你使用的是云服务器(如阿里云、腾讯云),选择 2核4G 配置是比较稳妥的选择。
如需更精确数据,可通过 jstat, jconsole, VisualVM 或 Prometheus + Grafana 监控实际内存使用。
CLOUD技术笔记