背景
初学者对性能分析是个《横看成岭侧成峰,远近高低各不同。不识庐山真面目,只缘身在此山中。》那么应该怎么学习才能建立起自己的知识体系,才能做到《千山同一月,万户尽皆春。千江有水千江月,万里无云万里天》今天咱们谈谈7DGroup创始人高楼老师的性能分析之决策树分析法二。
分析树图一
第一层是业务指标,
- 响应时间
- TPS
- 错误率
第二层是操作系统
- CPU
- IO
- MEM
- NET
分析方法
注意:java应用
- 使用TOP命令找到谁在消耗CPU比较高的进程,例如pid = 1232
- 使用top -p 1232 单独监控该进程
- 输入大写的H列出当前进程下的所有线程
- 查看消耗CPU比较高的线程,并看线程编号,例如 12399
- 使用jstack 1232>pagainfo.dump 获取当前进程下的dump线程信息
- 将第四步获取的线程编号12399转换成16进制306f (printf "%xn" 12399)
- 根据306f在第5步获取的栈信息中查找tid=0x306的线程
- 定位代码位置(根据打印出来的堆栈信息查看代码所在位置)