今天继续来说一下Arthas中的thread,
这里的cpu使用率与linux 命令 top -Hp <pid> 的线程%CPU类似,一段采样间隔时间内,当前JVM里各个线程的增量cpu时间与采样间隔时间的比例。
工作原理说明:
-
首先第一次采样,获取所有线程的CPU时间(调用的是java.lang.management.ThreadMXBean.getThreadCpuTime()和sun.management.HotspotThreadMBean.getInternalThreadCpuTimes()接口)
-
然后睡眠等待一个间隔时间(默认为200ms,可以通过-i指定间隔时间)
-
再次第二次采样,获取所有线程的CPU时间,对比两次采样数据,计算出每个线程的增量CPU时间
-
线程CPU使用率 = 线程增量CPU时间 / 采样间隔时间 * 100%
1.thread -->查看当前进程的所有线程信息
参数说明:
Threads Total: 总线程数
NEW: 初始状态的线程
RUNNABLE: 就绪(可运行状态)状态的线程
BLOCKED: 阻塞状态的线程
WAITING: 等待线程
TIMED_WAITING: 超时等待线程
TERMINATE