Arthas--深入排查java进程消耗CPU或内存过高问题

Arthas 是阿里巴巴开源的一款监控java进程的工具,可以有效监控CPU、内存使用情况,更厉害的是可以帮助开发人员深入排查java代码的问题,比如java进程占用cpu过高是哪一个线程执行哪一个类的哪一个方法出的问题

首先,先给大家普及一下Arthas的使用步骤:

Step1 下载安装:
在线安装方式: curl -O https://alibaba.github.io/arthas/arthas-boot.jar
离线方式:到github下载对应的已发布的稳定的jar包 https://github.com/alibaba/arthas/tree/arthas-all-3.1.7
Step2 启动:
java -jar arthas-boot.jar
启动成功后如下图所示:
Arthas--深入排查java进程消耗CPU或内存过高问题_第1张图片
上图界面可以看到检测到了16个java进程,其中一个不可用;默认当前会话选中的是第一个进程:3968

如果需要切换到其他进程怎么办呢?
直接输入对应的进程编号即可,如下图所示:
Arthas--深入排查java进程消耗CPU或内存过高问题_第2张图片
从图中效果可以发现,虽然已经Attach捕获进程成功,但是当前进程还是之前的会话进程3968,这是Arthas的一个坑
很简单解决此问题,如下图所示步骤:
先关闭当前会话,然后再重启arthas,
Arthas--深入排查java进程消耗CPU或内存过高问题_第3张图片
Arthas--深入排查java进程消耗CPU或内存过高问题_第4张图片
如此以上两个步骤即可解决这个坑人的问题~~

下面是简单列举下常用的命令:
命令:dashboard 当前系统的实时数据状态看板,线程的cpu占用情况,内存的消耗和垃圾回收情况等
Arthas--深入排查java进程消耗CPU或内存过高问题_第5张图片
命令:sc 查看JVM已加载的类信息
Arthas--深入排查java进程消耗CPU或内存过高问题_第6张图片

命令:sm 查看已加载类的方法信息
Arthas--深入排查java进程消耗CPU或内存过高问题_第7张图片
命令:trace 定位方法内部代码块性能耗时情况
Arthas--深入排查java进程消耗CPU或内存过高问题_第8张图片

命令:thread 显示所有线程的信息
Arthas--深入排查java进程消耗CPU或内存过高问题_第9张图片
thread -n 3 展示当前最忙的前N个线程并打印堆栈
Arthas--深入排查java进程消耗CPU或内存过高问题_第10张图片

就此为止,想查看更多的命令解释,请参见官方文档
https://alibaba.github.io/arthas/commands.html

你可能感兴趣的:(java知识点,开发工具,服务器管理)