Java 进程内存优化核心参数(生产环境通用)

下面是最常用、最稳定、生产环境直接可用的 Java 内存优化 JVM 参数,按用途分类,附推荐配置说明,适用于 SpringBoot/Tomcat/ 微服务等所有 Java 应用。

小微服务

java -Xms512m -Xmx1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:MaxGCPauseMillis=150 -Xss256k 

中等服务

java -Xms1g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:MaxGCPauseMillis=150 -Xss512k

大内存服务

java -Xms4g -Xmx8g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:MaxGCPauseMillis=150 -Xss1m

参数解释:

一、核心堆内存参数(必配)

控制 Java 最大 / 初始内存,避免 OOM、频繁 GC、内存浪费。

-Xms 初始堆内存

-Xmx 最大堆内存(生产核心配置)

二、元空间配置(JDK8+,替代永久代)

防止元空间溢出,尤其在使用反射、动态代理的场景。

-XX:MetaspaceSize 元空间初始大小

-XX:MaxMetaspaceSize 元空间最大大小

三、新生代 / 老年代优化(降低 GC 频率)

调整对象分配策略,减少 FullGC。

-XX:NewRatio 新生代大小(官方不推荐直接用 -Xmn,建议用比例),2表示老年代:新生代 = 2:1(新生代占堆 1/3)

-XX:SurvivorRatio 伊甸区:S0:S1 比例 8表示Eden : S0 : S1 = 8:1:1

四、GC 垃圾收集器(性能关键)

生产首选:G1 收集器(JDK8+ 默认,低延迟、高吞吐)

-XX:+UseG1GC

-XX:MaxGCPauseMillis=150 期望最大 GC 停顿时间(单位:毫秒,默认 200ms)

高并发低延迟:ZGC(JDK11+ 推荐)

-XX:+UseZGC

五、栈内存优化(避免线程栈溢出)

-Xss 线程栈大小(默认 1M,微服务可适当调小),高并发服务:-Xss256k 或 -Xss512k,递归深的业务:-Xss1m

Categories: 系统运维