Arthas:排查cpu异常过高的问题

下载arthas

curl -O https://alibaba.github.io/arthas/arthas-boot.jar

启动arthas

java -jar arthas-boot.jar

dashboard 仪表板

第一部分是显示JVM中运行的所有线程:所在线程组,优先级,线程的状态,CPU的占用率,是否是后台进程等

第二部分显示的JVM内存的使用情况

第三部分是操作系统的一些信息和Java版本号

dashboard

image-20231226145518601

通过 thread 命令来获取线程信息

1、当没有参数时,显示所有线程的信息

thread
2、展示当前最忙的前3个线程并打印堆栈

thread -n 3
3、显示1号线程的运行堆栈

thread 1
4、找出当前阻塞其他线程的线程,有时候我们发现应用卡住了, 通常是由于某个线程拿住了某个锁, 并且其他线程都在等待这把锁造成的。 为了排查这类问题, arthas提供了thread -b, 一键找出那个罪魁祸首。

thread -b
5、指定采样时间间隔,每过1000毫秒采样,显示最占时间的3个线程

thread -i 1000 -n 3
6、查看处于等待状态的线程

image-20231226145349492

找对对应方法解决


Arthas:排查cpu异常过高的问题
https://cason.work/2023/10/27/Arthas-排查cpu异常过高的问题/
作者
Cason Mo
发布于
2023年10月27日
许可协议