【深入浅出-VisualVM】(1):远程调试

栏目: Java · 发布时间: 5年前

内容简介:VisualVM 是一款免费的性能分析工具。它通过 JvmStat、JMX、 SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行动态的性能分析。同时,它 能自动选择更快更轻量级的技术尽量减少性能分析对应用程序造成的影响,提高性能分析的精度。核心技术是JMX,其中WebLogic和JBoss都是基于Jmx的。1.进入JAVA_HOME\jre\lib\management 目录,修改jmxremote.password.template为j

VisualVM 是一款免费的性能分析工具。它通过 JvmStat、JMX、 SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行动态的性能分析。同时,它 能自动选择更快更轻量级的技术尽量减少性能分析对应用程序造成的影响,提高性能分析的精度。

核心技术是JMX,其中WebLogic和JBoss都是基于Jmx的。

监控远程JVM

远程JVM配置

1.进入JAVA_HOME\jre\lib\management 目录,修改jmxremote.password.template为jmxremote.password 并且给予修改权限 chmod 600 jmxremote.password

2.打开jmxremote.password 去掉 #monitorRole QED 和 # controlRole R&D 的注释,这里存放的时候JMX远程授权的用户名和密码,其中用户名monitorRole 密码QED的只能普通监控,没办法用抽样器进行cpu,内存抽样,而用户名为controlrole 是具有所有权限的。这个用户名密码表也可以自己指定,后续加入 -Dcom.sun.management.jmxremote.password.file=pwFilePath

【深入浅出-VisualVM】(1):远程调试

3.在TOMCAT_HOME\bin目录的catalina.sh 第一行加入

JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.0.23(jmx绑定远程主机ip)
-Dcom.sun.management.jmxremote.port=18999(Jmx远程监听端口)
-Dcom.sun.management.jmxremote.ssl=false(禁止使用ssl) 
-Dcom.sun.management.jmxremote.authenticate=false(不启用用户认证,启动则改为true)"

这些参数最终是传给JVM的,这里是为了方便。

附上JMX所有参数

参数 描述
com.sun.management.jmxremote true / false. Default is true
com.sun.management.jmxremote.port Port number. No default.
com.sun.management.jmxremote.ssl true / false. Default is true.
com.sun.management.jmxremote.ssl.enabled.protocols Default SSL/TLS protocol version.
com.sun.management.jmxremote.ssl.enabled.cipher.suites Default SSL/TLS cipher suites.
com.sun.management.jmxremote.ssl.need.client.auth true / false. Default is false
com.sun.management.jmxremote.authenticate true / false.Default is true
com.sun.management.jmxremote.password.file JRE_HOME/lib/management/jmxremote.password
com.sun.management.jmxremote.access.file JRE_HOME/lib/management/jmxremote.access
com.sun.management.jmxremote.login.config Default login configuration is a file-based password authentication

4.重启tomcat,让配置生效。

VisualVM配置

1.文件->添加远程主机->点击高级设置->输入远程主机IP和端口号,调整好刷新时间

【深入浅出-VisualVM】(1):远程调试

【深入浅出-VisualVM】(1):远程调试

2.打开

【深入浅出-VisualVM】(1):远程调试

这里可以看到JVM的启动参数,这里我还添加过远程调试的参数啦。

注意:远程连接生产JVM的时候,如果在Visual在分析期间崩溃掉,那么生产的JVM也会崩溃掉,因为设置此 JVM 启用类共享,这会导致在对应用程序进行性能分析时出现问题,甚至最终导致应用程序崩溃。请参见《VisualVM Troubleshooting Guide》(《VisualVM 故障排除指南》)

好啦,VisualVm调试之旅开始啦~~~


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Growth Hacker Marketing

Growth Hacker Marketing

Ryan Holiday / Portfolio / 2013-9-3 / USD 10.31

Dropbox, Facebook, AirBnb, Twitter. A new generation of multibillion dollar brands built without spending a dime on “traditional marketing.” No press releases, no PR firms, and no billboards in Times ......一起来看看 《Growth Hacker Marketing》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具