查看Java哪个线程占用CPU资源

1. 首先确定进程的 ID ,可以使用top 命令直接查看,结果如下(以PID为11281为例):

174013_0csI_2969052.png

2. 查看该进程中哪个线程占用大量 CPU,执行 top -H -p 11281 结果如下:

174115_GRfS_2969052.png

我们以11373这个线程为例,首先将 11373转成 16 进制是 2c6d(可以用开源中国在线工具转换)

3. 接下来我们将进程中的所有线程输出到一个文件中,执行:jstack  11281> jstack.txt

4. 在进程中查找对应的线程 ID,执行:cat jstack.txt | grep -i 2c6d

结果是:

"cluster-ClusterId{value='5a9232f83b5d932c11711f2f', description='mongodb database'}-192.168.0.196:27017" #21 daemon prio=5 os_prio=0 tid=0x00007f5a69709800 nid=0x2c6d runnable [0x00007f5a88c6a000]

由此可以看出是mongodb 的cluster一直占用着CPU资源。

转载于:https://my.oschina.net/ManderSY/blog/1627327

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值