内容简介: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
。
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和端口号,调整好刷新时间
2.打开
这里可以看到JVM的启动参数,这里我还添加过远程调试的参数啦。
注意:远程连接生产JVM的时候,如果在Visual在分析期间崩溃掉,那么生产的JVM也会崩溃掉,因为设置此 JVM 启用类共享,这会导致在对应用程序进行性能分析时出现问题,甚至最终导致应用程序崩溃。请参见《VisualVM Troubleshooting Guide》(《VisualVM 故障排除指南》)
好啦,VisualVm调试之旅开始啦~~~
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 利用 WireShark 深入调试网络请求
- iOS常用调试方法:断点调试
- 断点调试和日志调试之间的平衡点:函数计算调试之 Python 篇
- .NET高级调试系列-Windbg调试入门篇
- VisualStudio 通过外部调试方法快速调试库代码
- GDB 调试 Mysql 实战(二)GDB 调试打印
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!