“Ruoyi-Vue + SpringBoot” 是一个常见的前后端分离开发框架组合,其中:
- Ruoyi:是一个基于 SpringBoot 的后台权限管理系统(Java 后端)。
- Vue:是前端框架,通常使用 Vue2/Vue3 搭建管理界面。
- 部署时,前后端通常是分离的:前端打包为静态资源(由 Nginx 托管),后端是独立的 SpringBoot 应用(JAR 包运行)。
一、内存占用概览(生产环境常见配置)
| 组件 | 内存占用(估算) | 说明 |
|---|---|---|
| SpringBoot 后端(Ruoyi) | 300MB ~ 600MB JVM 堆内存(实际 RSS 可能 500MB~800MB) | 默认配置下,启动后占用约 300MB+,取决于数据量、并发、JVM 参数等 |
| 前端 Vue(Nginx 托管) | 10MB ~ 50MB | 静态资源,内存极低,Nginx 轻量高效 |
| 数据库(MySQL/PostgreSQL) | 200MB ~ 1GB+ | 独立进程,视数据量和配置而定 |
⚠️ 注意:这里讨论的是 运行时内存占用(RSS),不是 JAR 包大小。
二、SpringBoot 后端内存详解(Ruoyi 核心)
1. 默认 JVM 内存设置
java -jar ruoyi-admin.jar
此时 JVM 使用默认堆大小(通常初始 -Xms 为 128MB,最大 -Xmx 为 512MB 或 1G,取决于物理内存)。
2. 实际建议配置(生产环境)
java -Xms512m -Xmx512m -jar ruoyi-admin.jar
- 设置堆内存为 512MB 固定大小,减少 GC 波动。
- 实际运行中,JVM 总内存(包括堆外内存)可能达到 600~800MB。
3. 影响内存的因素
| 因素 | 对内存影响 |
|---|---|
| 在线用户数 | 用户越多,Session、缓存占用越高 |
| 缓存使用(Redis/Ehcache) | 本地缓存会增加 JVM 内存 |
| 日志级别 | DEBUG 级别日志频繁输出会影响性能和间接内存使用 |
| 定时任务、线程池 | 多线程可能增加栈内存消耗 |
| 数据库连接池(HikariCP) | 连接数多则占用更多内存 |
三、典型部署场景内存需求
| 场景 | 推荐最小内存 | 说明 |
|---|---|---|
| 开发/测试环境 | 1GB RAM | 可运行 Ruoyi + MySQL + Redis |
| 生产环境(小项目) | 2GB RAM | 推荐 2GB 以上,保证系统稳定 |
| 并发较高(>100用户) | 4GB RAM | 建议 JVM 分配 1GB~2GB 堆内存 |
四、优化建议降低内存
- JVM 参数调优
java -Xms256m -Xmx512m -XX:+UseG1GC -jar ruoyi-admin.jar - 关闭不必要的模块(如未使用的定时任务、监控)
- 前端部署在 CDN 或 Nginx,减轻后端压力
- 使用 Redis 替代本地缓存,减少 JVM 堆压力
总结
✅ Ruoyi-Vue + SpringBoot 部署时,后端应用内存占用一般在:
300MB ~ 600MB JVM 堆内存,
整体进程内存(RSS)约 500MB ~ 800MB。
📌 建议服务器至少 2GB 内存,以确保系统稳定运行(含 MySQL、Redis 等)。
如果你有具体部署规模(如用户量、功能模块),可以进一步精确评估。
CLOUD云计算