王子
深入排查java进程消耗CPU或内存过高问题
01/20
本文最后更新于2022年08月27日,已超过847天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
启动成功后如下图所示:
上图界面可以看到检测到了16个java进程,其中一个不可用;默认当前会话选中的是第一个进程:3968
如果需要切换到其他进程怎么办呢?
直接输入对应的进程编号即可,如下图所示:
从图中效果可以发现,虽然已经Attach捕获进程成功,但是当前进程还是之前的会话进程3968,这是Arthas的一个坑
很简单解决此问题,如下图所示步骤:
先关闭当前会话,然后再重启arthas,
如此以上两个步骤即可解决这个坑人的问题~~
下面是简单列举下常用的命令:
命令:dashboard 当前系统的实时数据状态看板,线程的cpu占用情况,内存的消耗和垃圾回收情况等
命令:sc 查看JVM已加载的类信息
命令:sm 查看已加载类的方法信息
命令:trace 定位方法内部代码块性能耗时情况
命令:thread 显示所有线程的信息
thread -n 3 展示当前最忙的前N个线程并打印堆栈
就此为止,想查看更多的命令解释,请参见官方文档
https://alibaba.github.io/arthas/commands.html