arthas常用命令(四)-- thread
thread命令
参数说明
参数名称 | 参数说明 |
---|---|
id | 线程 id |
-n | 指定最忙的前 N 个线程并打印堆栈 |
-b | 找出当前阻塞其他线程的线程 |
-i | 指定 cpu 使用率统计的采样间隔,单位为毫秒,默认值为 200 |
--all | 显示所有匹配的线程 |
线程状态:
NEW: 新建, RUNNABLE: 运行中, BLOCKED: 阻塞,
WAITING: 等待, TIMED_WAITING: 105, TERMINATED: 终止。
TIMED_WAITING(超时等待):该状态不同于WAITING,它可以在指定的时间后自行返回。
thread 常用的命令
输入thread,双击 tab,可以看到 thread 相关的所有命令。
显示第一页的线程:
thread
thread 没有参数时,默认按照 CPU 增量时间(DELTA_TIME)降序排列,只显示第一页数据。
结果如下:
ID:线程id。
NAME:线程名称。
STATE:线程状态。
%CPU:CPU占比。
DELTA_TIME:采样间隔时间内线程的增量 CPU 时间
显示所有的线程
thread -all
结果如下:
查找 CPU占用最高的前 n 个线程,并打印堆栈
thread -n 5
通过这个命令,可以找出CPU占用最高的几个线程。
结果如下:
结果的含义如下:
Id:线程 ID。如果没有线程 ID,包含`[Internal]`的表示为 JVM 内部线程。
cpuUsage为采样间隔时间内线程的 CPU 使用率。
deltaTime为采样间隔时间内线程的增量 CPU 时间,小于 1ms 时被取整显示为 0ms。
time:线程运行总 CPU 时间。
指定线程id,打印堆栈
thread 74
找出CPU占用最高的线程后,可以通过线程id,打印堆栈。
找出当前阻塞其他线程的线程:
通过这个命令,可以检测出是否死锁。
thread -b
指定采样时间间隔
thread -i 1000 : 统计最近 1000ms 内的线程 CPU 时间。
thread -n 3 -i 1000 : 列出 1000ms 内最忙的 3 个线程栈
查看指定状态的线程:
示例:展示等待状态的线程。
thread --state WAITING
结果如下:
Total表示总数 。
参考资料:
https://arthas.gitee.io/doc/thread.html
https://www.cnblogs.com/spareyaya/p/13177513.html
分类:
其他--arthas
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了