运行一个基础的 Spring Boot 应用所需的内存取决于多个因素,但我们可以给出一个大致的范围:
最低要求
理论上最少需要:
- JVM 堆内存(Heap):约 64-128 MB
- 总内存占用:约 150-256 MB
这是指一个极其简单的"Hello World"级别的 Spring Boot 应用,仅包含最基本的启动配置。
实际推荐值
| 场景 | 最小内存 | 推荐内存 |
|---|---|---|
| 极简 Hello World | 128 MB | 256 MB |
| 基础 REST API | 256 MB | 512 MB |
| 完整业务应用 | 512 MB | 1 GB+ |
影响内存占用的主要因素
-
Spring Boot 版本
- Spring Boot 3.x(基于 Java 17+)比 2.x 更轻量
- GraalVM Native Image 可将内存需求降至 10-50 MB
-
使用的 Starter
spring-boot-starter-web:增加 ~50-100 MBspring-boot-starter-data-jpa:增加 ~100-200 MB- 每个额外 starter 都会增加内存开销
-
JVM 参数设置
# 典型的最小 JVM 配置 java -Xms128m -Xmx256m -jar app.jar -
Tomcat/Jetty 内嵌容器
- 默认 Tomcat 实例本身占用约 30-50 MB
优化建议
# application.yml 中可进一步减少内存
server:
port: 8080
spring:
main:
web-application-type: none # 如果不需 Web 功能
特殊情况
- GraalVM Native Image:编译后内存仅需 10-50 MB,启动时间毫秒级
- Serverless/函数计算:通常分配 128-256 MB 即可运行简单 Spring Boot Lambda
总结
底线答案:一个最简化的 Spring Boot 应用至少需要 128 MB 堆内存(总计约 150-256 MB 物理内存)。
生产建议:至少预留 256-512 MB 以确保稳定性和 GC 空间。
云小栈