温馨提示×

ubuntu下java内存怎么调

小樊
42
2026-10-04 04:13:16
栏目: 编程语言

在 Ubuntu 下调整 Java 内存,通常是通过 JVM 启动参数 来设置的。下面按常见场景给你说明。


一、最常用:设置堆内存

1️⃣ 基本参数

java -Xms512m -Xmx2g -jar app.jar

含义:

  • -Xms512m:初始堆内存 512MB
  • -Xmx2g:最大堆内存 2GB

✅ 推荐:
-Xms 和 -Xmx 设成一样,避免运行时频繁扩容,提升性能。


二、查看当前 Java 内存设置

java -XX:+PrintFlagsFinal -version | grep HeapSize

或运行中查看:

jstat -gc <pid>

三、Ubuntu 系统层面注意事项

1️⃣ 查看系统内存

free -h

2️⃣ 查看 Java 进程占用

top
# 或
ps aux | grep java

四、常见 Java 应用内存调整方式

✅ Spring Boot

java -Xms1g -Xmx1g -jar springboot-app.jar

或在 application.properties 里不行,必须在启动命令中加。


✅ Tomcat(Ubuntu)

编辑:

/etc/default/tomcat9

或

CATALINA_OPTS="-Xms1g -Xmx2g"

✅ 系统服务(systemd)

如果是 systemd 启动的 Java 服务:

sudo systemctl edit your-java-service

加入:

[Service]
Environment="JAVA_OPTS=-Xms1g -Xmx2g"

然后:

sudo systemctl daemon-reload
sudo systemctl restart your-java-service

五、其他常用 JVM 内存参数

-XX:MetaspaceSize=256m
-XX:MaxMetaspaceSize=512m
-Xss256k
  • Metaspace:类元数据(Java 8+)
  • Xss:每个线程栈大小

六、OOM(内存溢出)排查

1️⃣ 开启堆 dump

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/log/java/heapdump.hprof

2️⃣ 使用工具分析

  • jvisualvm
  • jmap
  • MAT(Eclipse Memory Analyzer)

七、简单推荐配置(通用)

内存大小 推荐设置
2G 服务器 -Xms1g -Xmx1g
4G 服务器 -Xms2g -Xmx2g
8G 服务器 -Xms4g -Xmx4g

如果你能告诉我:

  • Java 版本(8 / 11 / 17)
  • 应用类型(Spring Boot / Tomcat / 普通 jar)
  • Ubuntu 版本

我可以给你更精准的配置建议。

0 踩