线上JVM调查工具:JCPU和JMEM
- - 五四陈科学院以下内容由 [五四陈科学院]提供. 之前的jkiller改名为jcpu,然后再加上jmem,齐活了,线上要再遇到问题,内存和CPU之外的也没啥其他办法了. 用来定位莫名其妙的堆外内存问题. 首先还是要先用jmap之类的看清楚是否是JVM堆内问题了再用此神物. jmem.sh 用来靠gdb找到够大的内存块,直接dump到文件里.
之前的jkiller改名为jcpu,然后再加上jmem,齐活了,线上要再遇到问题,内存和CPU之外的也没啥其他办法了。
https://github.com/54chen/jmem
用来定位莫名其妙的堆外内存问题。首先还是要先用jmap之类的看清楚是否是JVM堆内问题了再用此神物。
jmem.sh 用来靠gdb找到够大的内存块,直接dump到文件里。然后肉眼看吧。。。反正我没看出来,祝你好运。
pmap2stack.sh 弄出来大块的内存地址后,尝试在各种stack中帮你grep出来可以读懂的东东。
https://github.com/54chen/jcpu
这个之前有介绍过,就是cpu占得比较猛的进程,直接打出来里面最费CPU的前五个堆栈。
具体用法都在项目的README上。