命令简介
对象信息
jmap -histo:live ${pid} |sort -k2 -nr |less
jmap命令在使用前会报Can't attach to the process: ptrace(PTRACE_ATTACH, ..), 参见该篇文章解决即可
栈
jstat -gcutil pid 600 10
jvm 总览
https://my.oschina.net/feichexia/blog/196575
系统资源
系统资源 http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.html
vmstat 2
top
参考
https://my.oschina.net/goldwave/blog/168516
运用实例
java线程突然内存占用 90% 找出问题所在
- 找到java进程
1
pid=`ps -elf |grep appname |grep -v grep`
- 找到进程中最耗时间的线程
pid2=top -Hp ${pid}
将对应的线程pid转化为 16进制
nid=printf "%x \n " ${pid2}jstack生成进程的线程快照
jstack ${pid}从线程快照中定位对应的 java类 和对应方法
jstack ${pid} |grep ${nid}最后查看指定类的代码