note icon indicating copy to clipboard operation
note copied to clipboard

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

Open Yhzhtk opened this issue 10 years ago • 2 comments

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

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

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

Yhzhtk avatar Dec 30 '14 07:12 Yhzhtk

查看内存DUMP文件命令:

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

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

Yhzhtk avatar Jan 23 '15 04:01 Yhzhtk

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

-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 来访问服务器实时运行情况。

Yhzhtk avatar Jan 23 '15 06:01 Yhzhtk