温馨提示×

centos如何调java内存

小樊
45
2026-09-24 01:13:08
栏目: 编程语言

在 CentOS 上调 Java 内存,通常是通过 JVM 启动参数来设置的,具体方式取决于你是“怎么运行 Java 程序的”。下面按常见场景说明。


一、最常用方式:java -Xms / -Xmx

1️⃣ 基本参数

java -Xms512m -Xmx2g -jar app.jar

说明:

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

✅ 这是最直接、最重要的两个参数


二、Tomcat(CentOS 常见)

方法 1:修改 catalina.sh

vi /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

三、systemd 服务方式(推荐)

如果你用 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

四、Spring Boot 项目

java -Xms512m -Xmx1g -jar springboot.jar

或写在启动脚本:

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

五、查看 Java 内存使用情况

1️⃣ 查看进程

ps -ef | grep java

2️⃣ 查看内存

jstat -gc <pid>

3️⃣ 图形工具(需桌面)

jvisualvm

六、常见推荐配置

小应用

-Xms512m -Xmx1g

中型服务

-Xms1g -Xmx2g

大内存服务器

-Xms4g -Xmx8g

七、注意事项(很重要)

  1. 不要超过物理内存
    free -h
    
  2. -Xmx ≠ 总内存占用(还有 Metaspace、线程、堆外内存)
  3. 容器环境(Docker)要注意:
    -XX:+UseContainerSupport
    

如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ Java 版本
  • ✅ 运行方式(jar / tomcat / docker)
  • ✅ 内存大小

我可以给你精确配置建议。

0 踩