栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java诊断工具之

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java诊断工具之

一、JDK自带的工具

 

jpsJVM Process Status Tool虚拟机进程状况工具jps命令用于列出正在运行的虚拟机进程信息
jstatJVM Statistics Monitoring Tool虚拟机统计信息监视工具jstat命令用于监视虚拟机各种运行状态信息
jinfo   Configuration Info for JavaJava配置信息工具jinfo命令用于实时查看和调整虚拟机各项参数
jmapMemory Map for JavaJava内存映象工具jmap命令用于生成堆转储快照
jhatJVM Heap Analysis Tool虚拟机堆转储快照分析工具jhat命令与jmap搭配使用,来分析jmap生成的堆转储快照
jstackStack Trace for JavaJava堆栈跟踪工具jstack命令用于生产虚拟机当前时刻的线程快照
VisualVM多合一故障处理工具

二、VisualVM介绍

        VisualVM作为Java VisualVM在Oracle JDK 6~8中发布,在Javajdk1.8.0_144bin目录下jvisualvm.exe。但在jdk9之后,VisualVM是作为一个独立的工具发布的,可以在任何兼容的JDK上运行。

左边JDK自带的Java VisualVM,右边独立发布的VisualVM

        VisualVM使用各种技术(包括jvmstat、JMX、可服务性代理(Serviceability Agent, SA)和Attach API)监视和排除运行在Java 1.4+上的应用程序的故障。      

VisualVM特性
显示本地和远程Java进程VisualVM自动检测并列出本地和远程运行的Java应用程序(jstatd必须在远程主机上运行)。您还可以通过JMX连接手动定义应用程序。
显示进程配置和环境对于每个进程,VisualVM显示基本的运行时信息:PID、主类、传递给java进程的参数、JVM版本、JDK主进程、JVM标志和参数以及系统属性。

监控进程性能和内存

VisualVM监视应用程序的CPU使用情况、GC活动、堆和元空间/永久生成内存、加载的类的数量和运行的线程。
可视化进程中的所有线程信息

Java进程中运行的所有线程都显示在一个时间轴中,同时显示聚合的运行、休眠、等待、驻留和监视时间。

分析性能和内存使用情况

VisualVM提供了分析应用程序性能和内存管理的基本分析功能。可以使用取样和仪器分析器。

获取和显示线程转储

VisualVM获取并显示线程转储,以便立即了解目标进程中正在发生的事情。多个进程的同步线程转储有助于发现分布式死锁。

获取并浏览堆转储

VisualVM根据需要或OutOfMemoryError创建并查看.hprof内存快照,以帮助发现低效的堆使用和调试内存泄漏。

分析核心转储

VisualVM能够从核心转储中读取关于崩溃的Java进程及其环境的基本信息,并提取并打开所包含的线程和堆转储。

分析应用程序离线

VisualVM能够将应用程序配置和运行时环境以及所有获取的线程转储、堆转储和分析器快照保存到一个单独的应用程序快照中,该快照稍后可以脱机处理。

三、VisualVM插件安装

        联机下载太慢,推荐安装方式:下载npm包手工导入

        插件下载地址:https://visualvm.github.io/uc/8u131/updates.html

 四、常用插件使用介绍

        1、Visual GC

        将Visual GC工具集成到VisualVM。为每个本地或远程应用程序显示可视化GC用户界面,并通过jvmstat API提供性能计数器。Visual GC工具附加到一个HotSpot JVM上,以图形方式收集并显示垃圾收集、类装入器和HotSpot编译器性能数据。

        2、线程

        Threads Inspector在Threads选项卡中添加了一个新部分,显示所选活动线程的堆栈跟踪。

         3、Tracer

        跟踪器探测监视Java Collections框架;跟踪器探测监视Java I/O调用等。

五、VisualVM插件安装

        1、本地连接:自动显示本地已经启动的JVM进程

        2、远程连接:jstatd连接。jstatd 是JDK自带的工具

                在远程主机上,新建一个 jstatd.policy 文件,内容如下:

grant codebase "file:${java.home}/../lib/tools.jar" {  
     permission java.security.AllPermission;
};

                然后在远程主机上启动 jstatd 并且不要关闭。

jstatd -J-Djava.security.policy=jstatd.policy -p 1099

                VisualVM上远程添加jstatd连接,输入IP 端口即可 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/530716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号