[arthas@31126]$ ognl '@org.geekbang.time.commonmistakes.troubleshootingtools.highcpu.User@ADMIN_ID'@Integer[0]
需要额外说明的是 , 由于 monitor、trace、watch 等命令是通过字节码增强技术来实现的 , 会在指定类的方法中插入一些切面来实现数据统计和观测,因此诊断结束要执行 shutdown 来还原类或方法字节码,然后退出 Arthas 。
在这个案例中,我们通过 Arthas 工具排查了高 CPU 的问题:
- 首先,通过 dashboard + thread 命令,基本可以在几秒钟内一键定位问题,找出消耗 CPU 最多的线程和方法栈;
- 然后,直接 jad 反编译相关代码,来确认根因;
- 此外 , 如果调用入参不明确的话,可以使用 watch 观察方法入参,并根据方法执行时间来过滤慢请求的入参 。
对于应用故障分析,除了阿里 Arthas 之外,还可以关注去哪儿的Bistoury :https://github.com/qunarcorp/bistoury工具 , 其提供了可视化界面,并且可以针对多台机器进行管理,甚至提供了在线断点调试等功能 , 模拟 IDE 的调试体验 。
推荐阅读
- 国家收回土地怎么补偿,国有土地使用权补偿标准及法律依据
- 新买玻璃杯怎么清洗 玻璃杯首次使用正确方法
- 小区充电桩如何使用视频,小区电动车充电站如何使用
- iphone辅助触控的使用方法 iphone辅助触控进阶玩法
- 洗面奶推荐:深层清洁控油去黑头,使用后肌肤干净水润而不紧绷!
- 为什么很多人坚持使用iphone7 iphone7有哪些好东西
- cdr要怎么样使用剪切蒙版,ps剪切蒙版的快捷键是什么
- 怎么限制手机APP使用流量,怎样禁止手机软件使用流量
- 怎么使用格式刷,苹果电脑怎么用格式刷
- 如何通过使用优先级提示,来控制所有网页资源加载顺序