前言:
公司的项目上线后,吞吐量越来越小了,也没有特殊异常抛出,测试环境、预生产又一切正常,反复看了日志,不纠结了,直接把可能影响的因素复制到本地开始jvm调试,随便记录贴个安装教程
1、安装工具
|--------------------------------------------|
| 最好用jdk自带的 安装地址:https://visualvm.github.io/ |
解压即可使用,默认使用本地的jdk
2、安装插件
安装上面四个插件。
3、使用jvisualvm
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| cd C:\Program Files\Java\jdk1.8.0_361\bin ### 开启vm连接(visual vm 连接到 jar包,可以做切片分析) jvisualvm -J-Dorg.netbeans.profiler.separateConsole=true ### 如果只是想开启监控 jvisualvm |
4、cpu或者内存捕获开启
点击cpu后迅速请求接口,接口执行完后停止捕获
5、分析异常
根据定位信息,具体分析,是公司的分布式事务框架的缓存读取链路信息的时候进行了全量加载,导致的耗时长,从而导致事务迟迟不能提交,导致了死锁跟低吞吐量(分析过程的有大量公司框架类名不方便展示,这里就随便贴个了)