一、jdb调试
- mqbroker(jvm参数配置)
![](https://i-blog.csdnimg.cn/blog_migrate/b254634a289760a827901ed811b60eec.png)
2.利用jdb/idea/eclipse 远程调试,同本地调试一样
![](https://i-blog.csdnimg.cn/blog_migrate/acfaab9fac27cbeda31803f56182b8b7.png)
二、jvisualvm jvm 监视
- 使用jstatd连接
nohup $JAVA_HOME/bin/jstatd -p 1099 -J-Djava.security.policy=<(echo 'grant codebase "file:${java.home}/../lib/tools.jar" {permission java.security.AllPermission;};') &
![](https://i-blog.csdnimg.cn/blog_migrate/e3418fad5d3e995cd4a762d33e78e7aa.png)
- 使用jmx连接(需配置jvm启动参数据)
由于jvisualvm采器需要使用jmx,假如我们采样的是broker,那就需要在broker的启动jvm参数据配置jmx。
JAVA_OPT="${JAVA_OPT} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10080 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
![](https://i-blog.csdnimg.cn/blog_migrate/7ad4bbdc574e512e4582b45538c301b6.png)
给如果想看到细分的gc情况,可以给jvisual装个插件。
https://visualvm.github.io/archive/uc/7u60/updates.xml.gz
![](https://i-blog.csdnimg.cn/blog_migrate/e246d6c0988540850ec692d3dc4cdaf8.png)
- 监视
![](https://i-blog.csdnimg.cn/blog_migrate/d61761c0a87534e0d4421941d08f7d5d.png)
- 线程
抽样器
![](https://i-blog.csdnimg.cn/blog_migrate/c992846e32317ccba9b8f13619a43f85.png)
抽样器-快照
例子:如下两图可以看出,拉取消息时,如果把堆外内存数据转到堆内再进行发送,主要耗时是在堆数据的拷贝。
![](https://i-blog.csdnimg.cn/blog_migrate/e7597da5c0a80c627fb263db14fb62c2.png)