Yhzhtk / note

知识代码笔记
https://github.com/Yhzhtk/note/issues
MIT License
108 stars 11 forks source link

jstack 查看堆栈内存信息(Tomcat用户权限) #19

Open Yhzhtk opened 9 years ago

Yhzhtk commented 9 years ago

有的时候用root权限也无法查看,这时候可以用tomcat权限查看数据:

sudo -u tomcat ./java//bin/jstack -J-d64 $pid > stack.log 

注意:得到的堆栈信息,其中的线程ID是16进制的,而top -H 的线程ID是10进制的,需要转换一下。

Yhzhtk commented 9 years ago

查看内存DUMP文件命令:

sudo -u tomcat ./java/default/bin/jmap -J-d64 -dump:live,format=b,file=./dump.bin $pid

得到的dump文件,可以通过 MemoryAnalyzer 来分析。

Yhzhtk commented 9 years ago

开启服务器端监控,可能会消耗一些性能,调试时使用。 在启动参数上加上以下配置:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

启动后,可以远程通过jconsole 或者 jvisualvm 通过 ip:9010 来访问服务器实时运行情况。