Ubuntu 下 Java 运行内存配置指南
一 常用内存参数与含义
-Xms512m -Xmx2g。建议将两者设为相同值以减少运行期扩缩堆带来的抖动。-Xmn512m),不熟悉时保持默认更稳妥。-Xss1m),栈过大将限制可创建的线程数。二 配置方式与示例
java -Xms1g -Xmx2g -jar app.jarexport JAVA_OPTS="-Xms1g -Xmx2g";随后 java $JAVA_OPTS -jar app.jar。部分应用服务器/脚本更偏好使用专用的 CATALINA_OPTS 等变量。export _JAVA_OPTIONS="-Xms512m -Xmx1g"(对所有 Java 进程生效,可能被应用或脚本覆盖)。-Xms1g -Xmx2g)。Environment="JAVA_OPTS=-Xms1g -Xmx2g",然后 systemctl daemon-reload && systemctl restart your.service。-XX:PermSize / -XX:MaxPermSize(已废弃,仅旧版本需要)。-XX:MetaspaceSize / -XX:MaxMetaspaceSize 控制元空间。三 验证配置是否生效
ps -ef | grep java,确认包含 -Xms 与 -Xmx 等参数。java -XX:+PrintFlagsFinal -version | grep -E "MaxHeapSize|InitialHeapSize"(单位字节)。Runtime.getRuntime().maxMemory() / totalMemory() / freeMemory()(单位字节)。jstat -gc <pid> 1000(每秒输出一次 GC 统计)。四 常见场景配置建议
-Xms 与 -Xmx 设为相同(如 2g),避免运行期扩缩堆;根据负载与延迟目标选择 GC(如 -XX:+UseG1GC)。-XX:MaxGCPauseMillis=200),同时关注线程栈与元空间。五 注意事项