查找Java程序中占用CPU线程

今天发现有个java应用占用CPU一直很高,将查看哪个线程导致CPU占用率高的方法总结如下:

  1. 查看进程PID
    使用top、ps等命令都可以,这里使用top:
    在这里插入图片描述
    可以看到PID=7679和PID=7745的进程占用CPU都很高。
  2. 通过top -Hp PID命令查看进程下线程CPU占用情况
    在这里插入图片描述
    可以通过输入P查看占用CPU最多的线程;输入M查看内存占用最高的线程。这里看到PID=7820和7818的线程占用CPU很高。
  3. 将线程PID转为十六进制
    Linux提供了很方便的工具,直接输入print “%x\n” 7818即可将7818转为十六进制输出。
  4. 打印进程堆栈
    jstack 进程id > ps.txt
  5. 打开堆栈文件,搜索第三步中十六进制的线程ID,可以看到这个线程的堆栈,从而定位到该线程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值