【深入浅出-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调试之旅开始啦~~~


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

查看所有标签

猜你喜欢:

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

Data Structures and Algorithms in Python

Data Structures and Algorithms in Python

Michael T. Goodrich、Roberto Tamassia、Michael H. Goldwasser / John Wiley & Sons / 2013-7-5 / GBP 121.23

Based on the authors' market leading data structures books in Java and C++, this book offers a comprehensive, definitive introduction to data structures in Python by authoritative authors. Data Struct......一起来看看 《Data Structures and Algorithms in Python》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具