Arthas 监控应用耗时
一、启动arthas 打开dashboard监控界面
二、对系统的某个功能进行压测,找出最繁忙的线程的ID
在压测过程中,request-thread 线程最繁忙
三、使用thread id 查看线程调用的类、方法
- 查看线程栈信息 thread id
- 找到系统运行过程中调用自己的方法,依次从下往上查看
建议使用 thread –n 5 >> /**/**/busy-thread.log 保存压测过程中最繁忙的线程(执行三次), 然后从线程堆栈数据中找出线程调用的方法
如线程栈数据:
然后根据公司的包名特征找出所调用的方法,
以上日志找到: com.minstone.docexchange.business.service.impl.ReceiveDocumentServiceImpl.selectNoSignedDocByPage 这个包名、方法,最后与开发确认
四、使用sm命令查看类下调用的方法名
sm com.autoapi.hadis.core.request.HttpRequester*
五、使用trace 监控此方法下调用方法的耗时情况
耗时过滤:trace demo.MathGame run ‘#cost > 10’
根据耗时情况,找出代码执行耗时最多的方法,然后继续往下监控直至找出是代码还是数据库问题