前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图文手把手教你JCONSOLE监控程序运行状态

图文手把手教你JCONSOLE监控程序运行状态

作者头像
苦叶子
发布2024-04-14 08:17:09
1240
发布2024-04-14 08:17:09
举报
文章被收录于专栏:开源优测开源优测

概念: 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。

其中

”-Dcom.sun.management.jmxremote"“启动jmx服务,

“-Djava.rmi.server.hostname”配置宿主机真实ip(客户端可直接连接),

”-Dcom.sun.management.jmxremote.port“ 和

”-Dcom.sun.management.jmxremote.rmi.port“设置为同一个端口开放,默认不开启用户验证”

-Dcom.sun.management.jmxremote.authenticate=false“和不开启ssl隧道

”-Dcom.sun.management.jmxremote.ssl=false“

三、客户端连接使用”-Djava.rmi.server.hostname“配置的真实ip加端口访问,使用jmxremote.password文件中配置的账号密码登录即可。

四、查看各项指标

查看JVM中的基础信息概要,主要有线程、GC、内存、以及启动参数等基础信息

查看和管理 MBean (管理 Bean)对象,用于监控和管理应用程序的各个组件;

可查看堆内存、线程、类及CPU的基本占用情况

查看JVM运行内存详细占用图

查看JVM运行线程详细占用图,其中可查看线程调用栈

查看JVM类加载折线图

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档