Jconsole JVM 调优工具使用

作者: Ian | 2020-08-02 | 阅读

   

转载:https://blog.csdn.net/shijing266/article/details/81511687

JConsole查看当前程序/进程的全局情况

第一个是本地,第二个选项是远程连接

概览 – 分别是堆内存使用、线程、类、CPU 占用率

单独查看内存使用情况和GC回收情况:

垃圾回收GC,分为2种,一是Minor GC,可以可以称为YGC,即年轻代GC,当Eden区,还有一种称为Major GC,又称为FullGC

主要看新生代和老年区的内存使用情况,一般 YGC执行在Eden区,FullGC执行在老年区;

GC原理:

参考:https://blog.csdn.net/Javazhoumou/article/details/99298624

我们可以看到年轻代包括Eden区(对象刚被new出来的时候,放到该区),S0和S1,是幸存者1区和幸存者2区,从名字可以看出,是当发生YGC,没有被任何其他对象所引用的对象将会从内存中被清除,还被其他对象引用的则放到幸存者区。当发生多次YGC,在S0、S1区多次没有被清楚的对象,则会被移到老年代区域。当老年代区域被占满的时候,则会发送FullGC。

无论是YGC或是FullGC,都会导致stop-the-world,即整个程序停止一些事务的处理,只有GC进程允许以进行垃圾回收,因此如果垃圾回收时间较长,部分web或socket程序,当终端连接的时候会报connetTimeOut或readTimeOut异常,

从JVM调优的角度来看,我们应该尽量避免发生YGC或FullGC,或者使得YGC和FullGC的时间足够的短。

查看程序中线程的情况

可查看总线程数和各个线程的状态

单独查看程序中类的加载和卸载情况

当前程序加载的 class 和卸载的 class梳理

查看VM的概要情况以及相关运行参数

活动线程、峰值、守护线程、启动线程总数

已加载类、已加载类总数、已卸载类总数

总物理内存、闲置物理内存、总交换空间、闲置交换空间

JVM的内存分布结构分析:http://www.codeceo.com/article/jvm-memory-stack.html



  相关文章:


留言区:

TOP