du781166309
2021-04-22 11:10
采纳率: 40%
浏览 48
已采纳

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

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 格一物 2021-04-22 16:10
    已采纳
    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

    点赞 1 评论
  • du781166309 2021-04-22 11:10

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

    点赞 评论

相关推荐 更多相似问题