在 CentOS 上调 Java 内存,通常是通过 JVM 启动参数来设置的,具体方式取决于你是“怎么运行 Java 程序的”。下面按常见场景说明。
java -Xms512m -Xmx2g -jar app.jar
说明:
-Xms512m:初始堆内存 512MB-Xmx2g:最大堆内存 2GB✅ 这是最直接、最重要的两个参数
catalina.shvi /usr/local/tomcat/bin/catalina.sh
在文件顶部加:
JAVA_OPTS="-Xms1g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
或:
CATALINA_OPTS="-Xms1g -Xmx2g"
重启 Tomcat:
systemctl restart tomcat
或
shutdown.sh
startup.sh
如果你用 systemctl 启动 Java:
vi /etc/systemd/system/yourapp.service
在 [Service] 中:
[Service]
ExecStart=/usr/bin/java -Xms1g -Xmx2g -jar /opt/app/app.jar
重新加载:
systemctl daemon-reload
systemctl restart yourapp
java -Xms512m -Xmx1g -jar springboot.jar
或写在启动脚本:
#!/bin/bash
JAVA_OPTS="-Xms512m -Xmx1g"
java $JAVA_OPTS -jar app.jar
ps -ef | grep java
jstat -gc <pid>
jvisualvm
-Xms512m -Xmx1g
-Xms1g -Xmx2g
-Xms4g -Xmx8g
free -h
-Xmx ≠ 总内存占用(还有 Metaspace、线程、堆外内存)-XX:+UseContainerSupport
如果你愿意,可以告诉我:
我可以给你精确配置建议。