概念:
jconsole是jdk自带的一款图形化监控和管理工具。可用于查看java程序运行过程中的内存、线程、类等重要信息。jconsole可直接连接本地java程序,也可远程连接运行中的java程序
一、JConsole远程连接原理
JConsole使用JMX协议与RMI协议远程监控或调用Java程序,大体思路是,连接时,JConsole客户端通过JMX连接服务端,连接成功后再次使用RMI重新调用服务端接口,两次”握手“后才能成功连接客户端与服务端。而在我们的项目中,后端Java服务是通过docker容器的方式部署于宿主机当中的,这就要求docker容器的启动配置需要额外多做一些调整。
二、JConsole远程连接服务端配置(容器启动使用docker-compose)
1.数据文件挂载- /jdk-management:/usr/local/openjdk-17/conf/management服务端启动需要配置远程连接的密码文件(不添加会启动报错)
- jmxremote.access 访问权限配置
- jmxremote.password 访问密码配置
2.jvm启动参数及端口映射
由于JConsole使用两次”握手“实现连接,因此连接通信过程中需要配置可让客户端直接连接的真实ip。
其中
四、查看各项指标
查看JVM中的基础信息概要,主要有线程、GC、内存、以及启动参数等基础信息
查看和管理MBean (管理 Bean)对象,用于监控和管理应用程序的各个组件;
可查看堆内存、线程、类及CPU的基本占用情况
查看JVM运行内存详细占用图
查看JVM运行线程详细占用图,其中可查看线程调用栈
查看JVM类加载折线图
开源优测
领取专属 10元无门槛券
私享最新 技术干货