note
note copied to clipboard
jstack 查看堆栈内存信息(Tomcat用户权限)
有的时候用root权限也无法查看,这时候可以用tomcat权限查看数据:
sudo -u tomcat ./java//bin/jstack -J-d64 $pid > stack.log
注意:得到的堆栈信息,其中的线程ID是16进制的,而top -H 的线程ID是10进制的,需要转换一下。
查看内存DUMP文件命令:
sudo -u tomcat ./java/default/bin/jmap -J-d64 -dump:live,format=b,file=./dump.bin $pid
得到的dump文件,可以通过 MemoryAnalyzer 来分析。
开启服务器端监控,可能会消耗一些性能,调试时使用。 在启动参数上加上以下配置:
-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 来访问服务器实时运行情况。