速卖通素材
努力

RuoYi前后端分离架构下,Java后端服务一般占用多少内存?

服务器

在 RuoYi 前后端分离版本(RuoYi-Vue)架构中,Java 后端服务(Spring Boot 应用)的内存占用会受到多种因素影响,但通常情况下,在默认配置和常规业务场景下,其 JVM 内存占用大致如下:

一、典型内存占用范围

场景 JVM 堆内存(-Xmx) 实际总内存占用(JVM 进程)
开发/测试环境(轻量使用) 512MB – 1GB 800MB – 1.2GB
生产环境(中等并发) 1GB – 2GB 1.3GB – 2.5GB

📌 说明:实际操作系统看到的 Java 进程内存 = 堆内存 + 元空间(Metaspace)+ 栈内存 + 直接内存 + GC 开销 + 线程开销等。


二、影响内存占用的主要因素

  1. JVM 参数配置

    • -Xms-Xmx:初始和最大堆大小。RuoYi 默认可能为 1g
      -Xms512m -Xmx1g
    • -XX:MetaspaceSize-MaxMetaspaceSize:元空间默认无上限,但一般占用 100~300MB。
    • 是否开启 G1GC、ZGC 等也会影响内存管理效率。
  2. 应用模块数量

    • RuoYi 包含系统管理(用户、角色、菜单)、监控、定时任务、代码生成等模块。
    • 若启用 Redis 缓存、Ehcache、或集成消息队列(如 RabbitMQ),内存会增加。
  3. 并发请求与线程数

    • Tomcat 默认最大线程数 200,每个线程栈默认 1MB,极端情况可额外占用 200MB。
    • 高并发下堆内存中对象增多,GC 压力增大,内存峰值上升。
  4. 第三方依赖

    • Spring Boot + Spring Security + MyBatis Plus + Druid + Swagger + JWT 等组件都会占用一定内存。
    • 日志框架(Logback)、监控(Actuator)也会轻微增加开销。
  5. 数据库连接池

    • Druid 默认最大连接数 20~50,每个连接有一定内存开销。

三、实测参考数据(常见部署)

配置 内存表现
-Xms512m -Xmx1g,空闲状态 JVM 堆使用约 300~500MB,进程总内存 ~900MB
中等负载(几十个用户在线) 堆使用 600~800MB,总内存 ~1.4GB
高负载或全功能开启 可能接近 2GB 总内存

四、优化建议(降低内存)

# 示例:低内存环境启动参数
java -Xms256m -Xmx512m 
     -XX:MetaspaceSize=128m -MaxMetaspaceSize=256m 
     -Xss256k 
     -jar ruoyi-system.jar
  • 减少 Tomcat 线程数(server.tomcat.threads.max=100
  • 关闭不必要的模块(如未使用的监控端点)
  • 使用精简版 JDK(如 OpenJDK Alpine)
  • 使用 JProfiler 或 VisualVM 分析内存瓶颈

五、总结

一般结论

在标准配置下,RuoYi 后端 Java 服务 推荐分配 1GB 堆内存,实际物理内存占用约 1.2~1.8GB
若服务器资源紧张,可通过调优降至 最小 800MB 左右运行,但需关闭部分功能并限制并发。

📌 建议部署环境

  • 最低配置:1核2GB 内存(仅测试)
  • 推荐生产配置:2核4GB 内存(可支持良好并发)

如需更精确的数据,可通过 jstat -gc <pid>jmap -heap <pid> 或 Prometheus + Grafana 监控实际运行时内存使用情况。

未经允许不得转载:轻量云Cloud » RuoYi前后端分离架构下,Java后端服务一般占用多少内存?