You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS 6.8环境下Java堆内存查看命令及堆内存分配调整咨询

问题解答

1. 查看已分配堆内存的命令

分两种场景使用对应命令:

  • 查看JDK默认的全局堆配置
    你已经使用的命令是正确的:
    java -XX:+PrintFlagsFinal -version | grep HeapSize
    
    输出结果中InitialHeapSize对应JDK默认初始堆大小(即-Xms参数默认值),MaxHeapSize对应JDK默认最大堆大小(即-Xmx参数默认值),单位为字节。
  • 查看正在运行的Java进程(如Tomcat进程)的实际分配堆内存
    1. 先查询Java进程ID:执行jps命令,找到对应Java程序的进程号(pid)
    2. 执行以下任意命令查看堆配置:
    • jmap -heap <pid>:直接输出完整的堆内存分配、使用详情
    • jcmd <pid> VM.flags:查看进程启动时传入的堆参数配置
    • jstat -gc <pid>:查看堆内存各分区的实时使用情况

2. 调整Java程序内存大小

同样分两种场景配置:

2.1 普通独立Java程序

启动程序时直接在java命令后传入JVM堆参数即可,仅对当前启动的程序生效,示例:

# 给jar包程序设置初始堆2G,最大堆8G
java -Xms2g -Xmx8g -jar 你的应用包名.jar

你之前执行的java -Xmx8000m -XshowSettings:all仅对当前这条测试命令生效,不会全局修改JDK配置,也不会影响其他Java程序。

2.2 Apache Tomcat 8.5 内存配置(适配你的运行环境)

你如果是要调整Tomcat的Java堆内存,按以下步骤操作:

  1. 进入Tomcat安装目录的bin文件夹,找到catalina.sh文件
  2. 编辑catalina.sh,在文件开头(非注释区域)添加以下配置:
CATALINA_OPTS="-Xms2048m -Xmx8000m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"

其中-Xms为初始堆大小,-Xmx为最大堆大小,可根据你的实际需求调整数值,注意最大堆不要超过系统剩余可用物理内存,32位CentOS 6.8系统最大堆不能超过2G。
3. 保存退出后重启Tomcat生效:先执行./shutdown.sh关闭Tomcat,待进程完全停止后执行./startup.sh启动
4. 重启完成后可通过前面的jmap命令验证配置是否生效


内容的提问来源于stack exchange,提问作者Muhammad bux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:15:04