利用jconsole监控tomcat占用java内存情况

jconsole使用背景:

  web项目使用 tomcat服务部署,当tomcat启动后会占用java内存(tomcat为java代码所写,运行时需要JRE,需要安装JDK得到这个环境),使用jconsole可以监控tomcat占用java内存情况。

1.首先需要备份catalina.sh文件,防止修改catalina.sh文件后tomcat运行出问题。

linux环境下找到tomcat中的/bin/catalina.sh文件,找到:

 在这个位置增加java相关配置,增加内容如下:

JAVA_OPTS="-server -XX:PermSize=512M -XX:MaxPermSize=1024M -XX:+UseG1GC -Xss10M -Xms4096M -Xmx8192M "
JAVA_OPTS="$JAVA_OPTS -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=//heapdump -Dcom.sun.management.jmxremote.port=9005 -Dcom.sun.management.jmxremote.rmi.port=9005 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.2.173"

增加后的文件如下图:

 

 2.进入jdk目录打开jconsole,窗口:

输入ip:port,然后点击连接及可。

3.导出堆内存。

cd到jdk的bin目录下,导出堆内存:

jmap  -dump:format=b,file=****.dump  4562(java的PID进程号)

原文地址:https://www.cnblogs.com/schblog/p/13493810.html