千家信息网

java jdk中的可视化性能监控工具visual vm是怎样的

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,今天就跟大家聊聊有关java jdk中的可视化性能监控工具visual vm是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。visual
千家信息网最后更新 2025年01月18日java jdk中的可视化性能监控工具visual vm是怎样的

今天就跟大家聊聊有关java jdk中的可视化性能监控工具visual vm是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

visual vm 是一个功能强大的多合一故障诊断和性能监控可视化工具,使用 visual vm 可以替代 jstatjmapjhatjstack等。尽管如此,考虑到生产项目绝大多数发布在linux服务器,不支持gui界面,因此无法直接使用visual vm,所以生产上还是使用jstatjmapjhatjstack等工具居多。

1. 安装

jdk7jdk8 版本,可直接在命令行使用jvisualvm命令启动visual vm. 从jdk 9开始, visual VM不再集成在Oracle JDK中, 需要单独下载安装, 下载地址。安装完成后需要配置环境变量,这样之后就可以从命令行启动了。

visual vm 支持插件安装,通过菜单栏Tools -> Plugins 打开插件安装界面:

推荐安装visual gc,可以方便地看到eden区、suvivor区、老年代、meatspace区等区域内存空间占用及回收情况。

2. 连接应用程序

visual vm 可以连接本地java应用程序,也可以连接远程java应用。

2.1 本地连接

开启visual vm后,左侧面板local节点下就会列出本机上所有的java线程,双击对应的节点,即可连接。

2.2 远程连接

visaul vm也支持远程jmx连接,java应用程序可以通过以下参数打开jmx端口:

-Djava.rmi.server.hostname=127.0.0.1 \-Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.port=8888 \-Dcom.sun.management.jmxremote.ssl=false \-Dcom.sun.management.jmxremote.authenticate=false"
例:远程连接admin.jar 项目
  1. 启动项目

java -jar -Djava.rmi.server.hostname=192.168.0.104 \-Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.port=8888 \-Dcom.sun.management.jmxremote.ssl=false \-Dcom.sun.management.jmxremote.authenticate=false \admin.jar
  • -Djava.rmi.server.hostname 对应的是要远程访问的服务器ip,如果你的远程服务器ip是10.1.23.4,那么-Djava.rmi.server.hostname对应的值就为10.1.23.4。

  • -Dcom.sun.management.jmxremote.port 指定远程服务器jmx开放的端口。

  1. 使用visualvm 连接 在visual vm的菜单栏,通过 File -> Add JMX Connection... 打开jmx连接面板

Connection栏中的192.168.0.104:8888对应的就是启动参数中的-Djava.rmi.server.hostname-Dcom.sun.management.jmxremote.port 的值。

连接成功的界面如下:

再来一张本地直接连接的示例:

相比于本地直接连接,远程jmx连接少了MinitorthreadsSamplerProfiler等几个功能,另外Visual GC 也无法在远程连接时使用:

3. 监控应用程序概况

通过visual vm,可以查看程序的基本概况,比如进程id, Main Class, 启动参数等。

单击Tab页面上的监控页面,即可监控应用程序的cpu、堆、永久区、类加载和线程的总体情况。通过页面上的"执行垃圾回收"和"堆dump"按钮还可以手工执行FullGC和生成堆快照。

4. Thread Dump和分析

visual vm的线程页面可以提供详细的线程信息,单击右上角的"线程dump"按钮,可以导出当前所有线程的堆栈信息(相当于jstack命令)。

5. 性能分析

visual vm 有两个采样器,在sample页面显示了cpu和内存两个性能采样器,用于实时监控应用程序信息。cpu采样器可以将cpu占用时间定位到方法,内存采样器可以查看当前程序的堆信息。

通过visual vm的采样功能,可以找到该程序中占用cpu时间最长的方法,如图所示,

visual vm 的默认统计信息中,并不包含jdk的内置对象的函数调用统计,比如 java.* 包中的类。如果需要统计jdk内的方法调用情况,需要单击右上角的"设置"选项,手工进行配置。

通过内存采样器,可以实时查看系统中的实例分布情况:

6. 内存快照分析

使用右键菜单中的堆dump,可以立即获得当前应用程序的内存快照,如图所示:

内存快照如图所求,在顶部的下拉框中,提示了4个基本功能页:概要、对象、线程和OQL控制台。

  1. 概要页面展示了当前内存的整体信息,包括内存大小、实例总数、类总数等。

  1. 对象页面,以类为索引,显示了每个类的实例数和占用空间。

  1. 在线程页面,展示了当前应用dump时的线程堆栈情况。

  1. OQL控制台提供了更强大的对象查询功能。

看完上述内容,你们对java jdk中的可视化性能监控工具visual vm是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

程序 内存 线程 应用 页面 监控 应用程序 信息 性能 功能 情况 采样器 工具 命令 对象 快照 服务器 支持 服务 可视化 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 森林公安局网络安全大检查 吴中区运营网络技术哪家便宜 嵌入式linux的软件开发 家庭服务器与所带电脑配置对吗 福清互联网科技园 网络安全节目视频 黑龙江服务器电源批发商 软件开发外包售后服务怎样 怎么考高级软件开发 网络安全模式下更换系统 软件开发中的量化工具 os认证 数据库工具 连接数据库显示连接名已存在 共建网络安全共享网络文明范文 彬县天气预报软件开发 小说网站数据库是怎么设计的 软件测试软件开发程序员 光遇苹果和安卓是一个服务器吗 网络安全法 帮助信息网络犯罪 餐馆sql语句数据库 服务器报警电机堵转 vs15创建数据库 万方数据库如何查阅 广州小程序软件开发代码 一个服务器可安装多个数据库吗 数据库例题专升本 视易服务器壁纸 业余时间软件开发 所有权 代理服务器 账户安全吗 代理软件开发公司的软件
0