• 【JVM学习】Jconsole 配置jmx 监控JVM


    1. 配置jvm启动参数

    在使用jconsole监控jvm之前,首先需要先打开jmx。启动jvm时,添加以下参数。jmx通过58088端口对外开放。

    -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=58088 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
    
    • 1

    2.启动jconsole

    找到jdk安装的目录,在 $INSTALL_PATH/bin 目录下,执行 ./jconsole

    3.配置jmx 连接信息

    填写机器IP地址,及jmx端口。

    点击连接,即可打开jconsole 可视化界面,对java 应用运行情况进行分析。
    在这里插入图片描述

    4.查看分析

    4.1 概览

    在概览页面,可以查看堆内存、线程、类、CPU占用率等信息。

    在这里插入图片描述

    4.2 内存

    内存页面,可以查看JVM各个区域内存使用情况。包括:堆内存PS Old Gen、PS Eden Space、PS Survivor Space、Metaspace、Code Cache、Compressed Class Space.
    在这里插入图片描述
    在这里插入图片描述

    4.2.1 堆内存使用量

    PS Old Gen 区

    老年代内存占用情况,老年代存放经过多次年轻代垃圾回收都没有回收掉的对象。与此同时,对于大对象的分配内存,也是存放在老年代。大对象判断阈值:-XX:PretenureSizeThreshold=0 ** 默认值是0,意味着任何对象都会现在新生代分配内存。**

    PS Eden Space 区

    新生代内存占用情况,新创建的对象,都是在堆内存年轻代分配。

    PS Survivor Space 区

    幸存者区内存占用情况,存放年轻代垃圾回收时被标记对象,两个survivor区用于复制算法。

    4.2.2 非堆内存使用量

    Metaspace

    元空间区

    Code cache

    代码缓存区,它缓存的是JIT(Just in Time)编译器编译的代码,简言之codeCache是存放JIT生成的机器码(native code)。

    当然JNI(Java本地接口)的机器码也放在codeCache里,不过JIT编译生成的native code占主要部分。

    字节码编译:.java -> .class

    机器码编译:.class -> JIT 机器码

    JVM 执行一段class字节码,分两种方式:解释执行 和 编译执行。

    解释执行是指,在执行字节码时,逐行解释成机器码,然后再执行。

    编译执行是指,提前将经常被调用(达到一定次数)的方法字节码编译成功机器码,并进行各层次的优化,提升执行效率,缓存至codeCache里,避免重复编译。

    Compressed Class Space

    压缩类空间。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.3 线程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BcMtqYI9-1668758730570)(/Users/rong.li/Library/Application Support/typora-user-images/image-20221117201921172.png)]

    4.4 类

    在这里插入图片描述

    4.5 VM概览

    在这里插入图片描述

    4.6 MBean

    在这里插入图片描述

  • 相关阅读:
    NCBI/BIG测序数据下载---Aspera下载安装使用
    复现黑客在后门中藏匿后门
    Python 全栈系列253 再梳理flask-celery的搭建
    【位运算】必知必会:二进制位的原码反码补码转换 以及 按位与&、按位或|、异或^
    塑化行业SRM供应商管理系统:缩短采购周期时间,改善供应商采购管理
    微信小程序里面使用wxs文件
    100-centos 安装mysql
    读完 RocketMQ 源码,我学会了如何优雅的创建线程
    MySQL数据库day7.11
    OpenCV-Python学习(15)—— OpenCV 图像旋转角度计算(NumPy 三角函数)
  • 原文地址:https://blog.csdn.net/li396864285/article/details/127924650