温馨提示×

centos java内存怎么调

小樊
46
2026-09-29 21:54:03
栏目: 编程语言

在 CentOS 上调整 Java 内存,通常就是设置 JVM 参数,尤其是堆内存相关参数。下面按常见场景给你说明。


一、最常用:设置堆内存

1️⃣ 启动 Java 程序时指定

java -Xms512m -Xmx1024m -jar app.jar

参数说明:

  • -Xms512m:初始堆内存(建议和 Xmx 一致,避免频繁扩容)
  • -Xmx1024m:最大堆内存

✅ 生产环境建议

-Xms2g -Xmx2g

二、Tomcat(CentOS 常见)

方式一:修改 catalina.sh

vi /usr/local/tomcat/bin/catalina.sh

在文件顶部加:

JAVA_OPTS="-Xms1g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"

三、Spring Boot 项目

java -Xms1g -Xmx1g -jar springboot.jar

或写在启动脚本里:

#!/bin/bash
JAVA_OPTS="-Xms1g -Xmx1g"
java $JAVA_OPTS -jar app.jar

四、系统级限制(很重要)

1️⃣ 查看系统内存

free -h

2️⃣ 查看 Java 进程内存

ps -ef | grep java
top

⚠️ Xmx 不要超过物理内存的 70%~80%


五、常见问题排查

Java 占用内存比 Xmx 大?

因为 JVM 还包括:

  • 元空间(Metaspace)
  • 线程栈
  • 直接内存(NIO)
  • GC 开销

可加:

-XX:MaxMetaspaceSize=256m
-XX:ThreadStackSize=256k

六、查看当前 JVM 内存参数

jps
jinfo <pid> | grep Xmx

或:

jstat -gc <pid>

七、示例(生产推荐)

java \
-Xms2g -Xmx2g \
-XX:MetaspaceSize=256m \
-XX:MaxMetaspaceSize=512m \
-XX:+UseG1GC \
-jar app.jar

如果你能告诉我:

  • ✅ CentOS 版本
  • ✅ Java 版本
  • ✅ 应用类型(Tomcat / Spring Boot / 其他)
  • ✅ 内存大小 & 报错信息

我可以给你 精确调优方案。

0 踩