Spring Boot 3 在虚拟机环境下运行时,需要对 JVM 参数、Spring 配置 和 运行环境 进行优化,以提升应用的性能和资源利用效率。以下是详细的优化步骤:
一、JVM 参数优化
优化 JVM 参数对内存管理、垃圾回收、CPU 利用等性能有显著提升。
1. 基本 JVM 参数配置
以下是常见的 JVM 参数配置:
-Xms512m -Xmx1024m -XX:+UseG1GC -XX:MaxGCPauseMillis=200
参数详解:
-Xms 和 -Xmx:设置堆内存的初始大小和最大大小。
建议将 -Xms 和 -Xmx 设置为相同值,避免动态调整内存引起的性能损耗。
-XX:+UseG1GC:启用 G1 垃圾回收器,适合低延迟需求的场景。
-XX:MaxGCPauseMillis:设置垃圾回收的最大暂停时间(毫秒)。
示例:200 表示每次垃圾回收的目标暂停时间不超过 200ms。
其他常用参数:
元空间(替代永久代):
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m
线程栈大小:
-Xss256k
减少线程栈内存分配,适合多线程应用。
2. 垃圾回收策略优化
垃圾回收器根据场景选择:
默认 G1GC(推荐):适合低延迟场景。
ParallelGC:吞吐量优先,适合批处理任务。
ZGC 或 Shenandoah(需要 JDK 17+):
低延迟,适合响应时间要求极高的应用。
配置示例(G1GC):
-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45
配置示例(ZGC):
-XX:+UseZGC -Xms512m -Xmx1024m
3. 内存分配优化
针对不同场景设置内存分配策略:
生产环境:分配更大的内存,减少 Full GC 频率。
开发环境:限制内存使用,减少资源占用。
示例(生产环境&#