linux的top命令不仅可以看线程的资源占用,还可以看进程下线程的资源占用,结合对应的java命令可以定位到具体有问题的Java代码,以找出占用CPU最高的线程为例:
第一步: 通过 top命令查找到这个消耗CPU的进程号PID 8958
第二步:使用 top -Hp pid(shift+p 按cpu排序,shift+m 按内存排序)
top -Hp 8958 获取到这个进程下面所有线程,通过查看%CPU找到最耗费CPU的是线程PID
第三步:使用 printf '%x\n' PID (PID为上一步中获取到的线程号)转换成对应的16进制PID 5c7e 。因为jstack中线程号为16进制表示,与top下线程号整数表示不同,所以要转换。
第四步:使用jstack 获取对应的线程信息 jstack 8958 | grep 5c7e
8958是一开始获取的进程号,而5c7e则是这个进程下面最最耗费CPU的线程号。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-24
  • 2022-01-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-01
猜你喜欢
  • 2021-07-07
  • 2021-06-26
  • 2021-12-10
  • 2021-09-16
  • 2021-07-15
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案