下载
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
注:在运行第2条命令之前,先运行一个java进程在内存中,不然会出现找不到java进程的错误。
打印帮助信息
java -jar arthas-boot.jar -h
如果下载速度比较慢,可以使用aliyun的镜像:
java -jar arthas-boot.jar --repo-mirror aliyun --use-http
命令
查看当前线程信息,查看线程的堆栈
参数说明:
id 线程id
-n 指定最忙的前N个线程并打印堆栈
-b 找出当前阻塞其他线程的线程
-i 指定cpu使用率统计的采样间隔,单位为毫秒,默认值为200
--all 显示所有匹配的线程
--state 查看指定状态的线程
使用参考:
thread -b, 找出当前阻塞其他线程的线程
有时候我们发现应用卡住了, 通常是由于某个线程拿住了某个锁, 并且其他线程都在等待这把锁造成的。
为了排查这类问题, arthas提供了thread -b, 一键找出那个罪魁祸首
thread -i 1000 : 统计最近1000ms内的线程CPU时间。
thread -n 3 -i 1000 : 列出1000ms内最忙的3个线程栈
thread --state WAITING 列出等待态的线程