java visualvm使用,JVM详解

  java visualvm使用,JVM详解

  概述VisualVM是一个免费的\可视化工具,集成了几个JDK命令行工具。它可以为您提供强大的分析能力来分析和调优Java应用程序的性能。

  VisualVM提供的功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾收集器、执行内存和CPU分析,它还支持MBeans上的浏览和操作。VisualVM下载地址:http://visualvm.github.io/download.html

  相比JConsole,感觉功能更强大,可以集成各种插件,功能更强大。Jconsole是VisualVM的子集。此外,VisualVM还有一个JConsole的插件;

  和阿尔萨斯相比,它最大的特点绝对是图形。阿尔萨斯必须服从命令,而且命令很多,不好用(都是英文…),而且是JDK自带的。

  对于eclipse和idea(VisualVM Launcher),有相应的插件可以在软件界面快速打开VisualVM。

  对于性能分析,要点如下:

  监控:实时CPU监控、内存监控、线程监控等监控;

  Dump:从内存中获取当前状态数据,保存在文件中供后续分析,一般是线程信息的转储、类加载信息的转储、堆上对象的转储;

  快照:cpu快照和内存快照;

  分析:调用关系、运行时间、内存分配和使用情况、加载的类、已有对象信息等。程序中的函数。

  JFR:你可以查看JFR的档案,也就是联合军委会的飞行记录。

  VisualVM远程监控连接方法

  VisualVM会自动检测本机正在运行的JVM并建立连接。本文主要介绍连接远程Linux服务器的配置方法。

  VisualVM连接远程服务器有两种方式:JMX和jstatd,这两种方式都不能完美支持所有功能。比如JMX不支持VisualGC,jstatd不支持CPU监控,实际使用可以同时配置,按需选择。

  Window的VisualVM需要安装一些插件:

  配置Jstatd

  配置安全策略

  配置java安全访问,将以下代码保存为文件jstatd.all.policy,放在JAVA_HOME/bin中,内容如下:

  “授权代码库”文件:${java.home}/./lib/tools.jar {

  permission Java . security . all permission;

  };

  启动jstatd

  cd $JAVA_HOME/bin

  执行命令:

  Nop。/j statd-j-djava . security . policy=j statd . all . policy-j-djava . RMI . server . hostname=192 . 168 . 206 . 130(192 . 168 . 206 . 130是您的服务器的ip地址,表示

  这里需要注意的是,可以不指定后面的-j-DJ ava . RMI . server . hostname=192 . 168 . 206 . 130,但也有可能无法远程连接,所以我这样做了。

  Jps命令来查看jstatd是否已经正常启动。

  设置防火墙

  除了将1099添加到防火墙规则中,您还需要找到另一个随机端口并将其添加到规则中。

  执行

  netstat -anp grep *jstatd

  可以看到,除了1099之外,jstatd还监听端口53040,这被添加到规则中。添加方法参见2.5。

  (注意:重启后,这个随机端口会改变)

  如果担心配置可能影响远程连接,建议先关闭防火墙:/etc/init.d/iptables stop。

  启动VisualVM,因为在配置JMX时已经添加了服务器节点。如果配置正确,VisualVM将自动检测jstatd连接并添加节点。

  配置JMX

  身份验证,远程连接启动的ssl参数

  #指定主机名。通常,您需要再次指定主机名,否则连接将会失败。

  -DJ ava . RMI . server . hostname=192 . 168 . 0 . 147

  #指定主机名指定端口默认值:1099

  -DCOM . sun . management . JMX remote . port=8899

  #禁止ssl连接

  -DCOM . sun . management . JMX remote . SSL=false

  #禁止用户验证

  -DCOM . sun . management . JMX remote . authenticate=false

  #指定主机名。通常,您需要再次指定主机名,否则连接将会失败。

  -DJ ava . RMI . server . hostname=192 . 168 . 0 . 147

  #指定主机名指定端口默认值:1099

  -DCOM . sun . management . JMX remote . port=8899

  #禁止ssl连接

  com . sun . management . JMX remote . SSL=false

  #打开用户验证

  com . sun . management . JMX remote . authenticate=true

  #认证用户名密码

  -DCOM . sun . management . JMX remote . password . file=/opt/home/李成武/JVM/management/JMX remote . password

  #访问模式

  DCOM。星期日管理。JMX遥控器。访问。file=/opt/home/李成武/JVM/management/JMX远程。接近

  (jmxremote.access和jmxremote.password在JAVA_HOME\jre\lib\management下有模板)

  进入tomcat/conf目录,执行

  CP $ JAVA _ HOME/JRE/lib/management/JMX远程。密码。模板JMX遥控器。密码

  CP $ JAVA _ HOME/JRE/lib/management/JMX远程。打开JMX遥控器。接近

  进入雄猫安装目录安装找到catalina.sh文件,在卡塔琳娜_OPTS中的配置变更:

  CATALINA _ OPTS=-xms 1024m-xmx 6144m-XX:heapdumponotofmemoryerror

  -XX:PrintGCDetails-XX:PrintGCDateStamps

  -春天。简介。活动=生产

  -Xloggc:/data/logs/GC-` date % Y-% M-% d _ % H % M % S `。日志.

  -XX:MaxPermSize=1024M

  DCOM。星期日管理。JMX远程=真

  -DJ艾娃。RMI。服务器。主机名=115。29 .206 .6

  DCOM。星期日管理。JMX遥控器。端口=6666

  DCOM。星期日管理。JMX遥控器。SSL=false

  DCOM。星期日管理注释。SSL=false

  DCOM。星期日管理。JMX遥控器。验证=假

  -XX:解锁商业功能-XX:飞行记录器

  第三种配置- SSL

  参考:https://个文档。甲骨文。com/javase/1。5 .0/docs/guide/management/agent。html # SSL _ enabled

  1、在服务器上使用工具创建密钥对

  工具是爪哇岛平台自带的一个密钥和证书管理工具,使用工具创建密钥对:

  keytool-genkey-alias jetty-keystore/opt/home/李成武/jvm/ssl/jettyKeyStore

  按照提示输入相关信息(包括设定密码、姓、组织名等),这些信息是可以随便输入的,但从产品角度讲应该统一设定。输入的密码在今后操作中均需要使用。

  2、导出公钥

  keytool-export-alias jetty-keystore/opt/home/李成武/JVM/SSL/jetty keystore-file/opt/home/李成武/jvm/ssl/jetty.cert

  3、将公钥导入至需要运行分析工具的机器。(我的是窗子放在Z:\jvm\ssl\jetty.cert)

  键盘工具-导入

  -别名jetty-密钥库Z:\ JVM \ SSL \ jetty密钥库-文件Z:\ JVM \ SSL \ jetty。确实的事情

  4、修改码头的启动脚本

  DCOM。星期日管理。JMX遥控器。SSL= true

  并添加:

  -DJ avax。网。SSL。keystore=/opt/home/李成武/jvm/ssl/jettyKeyStore

  -DJ avax。网。SSL。密钥库密码=123456

  * 5、使用如下参数启动VisualVM:

  视觉VM-J-DJ avax。网。SSL。信任存储=Z:\ JVM \ SSL \ jetty密钥库

  ## 1、概述

  应用程序和运行时环境的基本信息

  ![](https://s 2.51 CTO。com/images/blog/202209/19225128 _ 632881 f 06681971608。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  基本参数

  PID:应用程序的进程身份

  主机:应用程序运行的系统地址

  主类:运行了主要的方法的类

  参数:应用启动时所传递的参数信息

  JVM:当前的虚拟机(Java虚拟机的缩写)信息

  Java:当前使用的爪哇岛开发工具包信息

  爪哇之家:JDK的位置

  虚拟机(Java虚拟机的缩写)标志:启动爪哇岛开发工具包时虚拟机(Java虚拟机的缩写)使用的的标志

  出现OOME时生产堆转储:当前出现OOME时生产堆倾销功能的开启/禁用状态

  保存的数据

  * 显示分析工具存储的当前应用程序的信息

  * JVM参数:配置的虚拟机(Java虚拟机的缩写)启动的参数信息

  * 系统属性:JVM运行的系统属性

  ## 2、监视

  展示监听的当前应用程序的整体情况

  ![](https://s 2.51 CTO。com/images/blog/202209/19225128 _ 632881 f 09 FD 7777934。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  * CPU:CPU的使用百分比

  * 内存:内存的占用情况,包括内存大小、最大值和已经使用的大小

  * 堆:堆内存的大小和堆内存使用情况

  *元空间:元空间内存的使用情况

  * 类:显示了已经加载的类数量和共享类的数量

  * 线程:显示了应用程序在虚拟机(Java虚拟机的缩写)中生存和守护线程的数量

  * 堆转储:执行堆转储,在新的标签页打开,查看倾销的详细信息

  ![](https://s 2.51 CTO。com/images/blog/202209/19225128 _ 632881 f 08 a 01d 73350。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  ## 3、线程

  * 展示了应用程序的线程数据,包括所有线程数、活动线程数、完成线程数

  ![](https://s 2.51 CTO。com/images/blog/202209/19225128 _ 632881 f 08 f1 DD 25887。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  * 线程转储:执行线程转储,在新标签页打开结果

  ![](https://s 2.51 CTO。com/images/blog/202209/19225128 _ 632881 f 0c 20 fa 7031。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  ## 4、抽样器

  抽取中央处理器和内存的样例数据

  设置——设置抽样参数

  中央处理器抽样:

  * CPU样例:展示了方法级别中央处理器性能(执行的时间及占比)

  * 线程中央处理器时间:反映了线程执行占用中央处理器的时间和占比

  ![](https://s 2.51 CTO。com/images/blog/202209/19225129 _ 632881 F12 D1 a 365885png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  ![](https://s 2.51 CTO。EDB 152号楼94700。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  * 堆柱状图:展示了内存占用情况

  * 每个线程分配:展示了每个线程分配的内存以及占比

  ![](https://s 2.51 CTO。com/images/blog/202209/19225129 _ 632881 f 16687749165。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  ![](https://s 2.51 CTO。com/images/blog/202209/19225129 _ 632881 f14d 18418443。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  # 5、简介

  启动和停止本地应用程序的概要分析会话

  CPU:点中央处理器按钮,启动一个中央处理器性能分析会话,显示中央处理器的使用率、方法的执行效率和频率等相关数据。

  ![](https://s 2.51 CTO。com/images/blog/202209/19225129 _ 632881 f 14d 50 c 54556。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  内存:点击"内存"按钮将启动一个内存分析会话,等分析工具收集和统计完相关性能数据信息,将会显示在性能分析结果。

  ![](https://s 2.51 CTO。com/images/blog/202209/19225129 _ 632881 f15 C5 c 655150。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  # 6、可视化乔治勋章

  工具——》插件

  ![](https://s 2.51 CTO。com/images/blog/202209/19225129 _ 632881 f 12589899117。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  就会出现视觉刚果民主共和国的标签

  ![](https://s 2.51 CTO。com/images/blog/202209/19225129 _ 632881 f 13 effb 17208。png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type _ zm fuz 3 poz w5 nagvpdgk=/resize,m_fixed,w_750)

  www。cnblogs。com/baby 123/p/11551626。html](https://www。cnblogs。com/baby 123/p/11551626。html)

  www。iteye。com/blog/soft beta-1264833](https://www .iteye。com/blog/soft beta-1264833)

  www。cnblogs。com/gossip/p/6141941。html](https://www。cnblogs。com/gossip/p/6141941。html)

  www。作废cn。com/article/p-glbjjqqe-XP。html](http://www。作废cn。com/article/p-glbjjqqe-XP。html)

  我的。奥斯中国。net/yygh/blog/650507】(https://my。奥斯中国。net/yygh/blog/650507)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: