在排查线上问题的时候,我们经常使用jstat、jstack、jmap查看GC、内存、线程的信息,但是有时候我们需要获取一个整体的信息来帮助我们快速定位,类似linux中自带的top命令,简单而全面的系统信息,在网上找了些资料,发现之前有人写了个jtop的工具,能够全面获取java应用的信息,一看作者,原来是阿里的同事,原理是使用了java中的MBean,借这个机会,把MBean的东西简单了解一下。
首先这个工具如何使用:wget https://hatter-source-code.googlecode.com/svn/trunk/jtop/jtop.jar
Usage:
java-jar jtop.jar[options][[]]-OR-java-cp jtop.jar jtop[options][[]]-sizeSize,caseinsensitive(default:B,Hforhuman)-threadThreadTopN(default:5)-stackStacktraceTopN(default:8)-excludesExcludes(string.contains)-includesIncludes(string.contains,excludes than includes)--colorDisplaycolor(default:off)--sortmemSortbymemory allocted(default:off)--summaryoffDonotdisplay summary(default:off)
(1)直接运行jtop.jar获取的信息(sudo -u admin /java -jar jtop.jar pid 内存、线程、GC、高CPU占用线程的栈信息)