linux下查看jvm监控相关
一,查看JVM中各个内存使用情况:jmap -heap <pid>
(JMap是JDK中自带的一个用于分析JVM内存状况的工具,位于JDK的bin目录下。使用JMap可查看
目前JVM中各个代的内存状况、JVM中对象的内存的占用状况,以及导出整个JVM中的内存信息。)
二,gc的使用情况:jstat -gc [-h3每3行显示标题] <pid> [多少毫秒eg5000]
(jstat是JDK自带的一个轻量级小工具。主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,
包括了对Heap size和垃圾回收状况的监控。)
三,当前java线程总数数:pstree -p <pid> |wc -l
线程被创建启动后,不并不是启动后就进入了执行状态,也不是一直处于的执行状态。
线程的生命周期分为创建(new)、就绪(Runnable)、运行(running)、阻塞(Blocked)、死亡(Dead)五种状态。
线程启动后不会一直霸占CPU资源,所以CPU需要在多条线程中切换执行,线程就会在多次的运行和阻塞中切换。
java阻塞线程数: jstack 16727 | grep blocked | wc -l
java运行线程数:jstack 16727 | grep runnable | wc -l
java死锁线程数:jstack 16727 | grep deadlock | wc -l
PS:http://guafei.iteye.com/blog/1815222
例子http://www.cnblogs.com/zhengyun_ustc/archive/2013/01/06/dumpanalysis.html
IT还是要坚持