java程序占用linux cpu过大,查看cpu占用最大的线程,如何看信息

 

man top
# 线程下的所有进程情况
top -p 15124 -H
# 转换16进制进程号(例如15125对应3b15)
printf '%x\n' 15125
# 线程dump
jstack -l 15124 >stack.txt
# 对应位置为nid=0x3b15,内容如下,可以定位到具体的java方法位置
"DestroyJavaVM" #71 prio=5 os_prio=0 tid=0x00007fa328009800 nid=0x3b15 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
        - None

你那一块是ContainerBackgroundProcessor线程占用CPU高导致的,可以参考下这篇博客

https://blog.csdn.net/loophome/article/details/100693030

如何定位到自己代码是哪块的问题