jmc分析历史线上问题案例1

报告时间

​ 2023年7月11日上午11点

报告类型

​ 系统重启后报告。

问题描述

​ 2023年7月10日下午5点客户发现Bcp-server运行很卡,查看后 CPU 100%,然后重启后恢复正常。此前也出现过多次。

问题类型

​ CPU负载过高。

分析工具

​ JMC。

诊断时间

​ 10分钟。

解决步骤

首先,查找CPU问题时刻的JFR文件。

1.查看启动脚本startWeblogic.cmd中的repository路径,根据路径找到JFR文件。

在这里插入图片描述

2.通过文件名称,文件大小可确定时间点、进程号、重启前和重启后这几个要素。确定了如下第二张图的16_41,16_49两个重启前的文件。

在这里插入图片描述

在这里插入图片描述

其次,确认是否CPU问题是本JVM进程引起的还是其他。

​ 1.打开JDK1.7版本/bin/jmc.exe,将以上两文件拖入IDE中。
​ 2.定位到“一般信息/预览”,查看CPU使用情况,发现确实JVM占用了100%的CPU。
在这里插入图片描述

第三,确认本JVM中的所有线程CPU占比情况(抽样占比)。

​ 1.切换到“线程/热点线程”,根据“样本计数”查看线程抽样情况及堆栈信息,发现占用高的都是HTTP线程且线程堆栈如出一辙。
在这里插入图片描述

第四,分析及调优

​ 2.在堆栈跟踪上,点击右键,展开堆栈“子树”分析堆栈找出问题点。
在这里插入图片描述

​ 3.确认优化方案
​ RLT0004.toXMLString调用时每次都初始化XStream,初始化的执行导致了CPU过高,一般有两种优化方案,其一,使用单例XStream,其二砍掉RLT0004.toXMLString。根据实际业务情况和经验作出最优解。

总结

​ 客户A的Bcp-server服务配置了JFR,在事发后重启域,仍然能够快速精准解决CPU问题,可有效提高客户满意度。因此强化监控是每个项目实施时的必备工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值