微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java堆转储nid与strace pid

如何解决Java堆转储nid与strace pid

我试图调试在Linux上运行的Java应用程序中的一些慢速情况,然后打开strace并尝试查看幕后发生的事情,我有以下几点:

[pid  9667] 06:53:51.999552 futex(0x7f437ace3d4c,FUTEX_WAIT_PRIVATE,29,NULL <unfinished ...>
[pid  9662] 06:53:52.001795 futex(0x7f437ace3d4c,FUTEX_CMP_REQUEUE_PRIVATE,1,2147483647,0x7f437ace3d18,30) = 1 <0.000025>
[pid  9667] 06:53:52.001831 <... futex resumed> ) = 0 <0.002275>
   So I can see my app main thread (9667) is blocked at some shared user space so I'm wondering what this 9662 is and trying to do a thread dump. 
"main" #32 prio=5 os_prio=0 tid=0x00007f437af15000 nid=0x25c3 runnable [0x00007f42441fa000]
"ITRS.T" #28 prio=5 os_prio=0 tid=0x00007f437ab77000 nid=0x25bf waiting on condition [0x00007f4298155000]
"Log4j2-TF-3-AsyncLoggerConfig-3" #27 daemon prio=5 os_prio=0 tid=0x00007f43794ce800 nid=0x25bd waiting on condition [0x00007f429885d000]
"Log4j2-TF-1-AsyncLogger[AsyncContext@764c12b6]-1" #25 daemon prio=5 os_prio=0 tid=0x00007f4379302800 nid=0x25ba waiting on condition [0x00007f4299589000]
...

因此9667对应于0x25c3。但是,我找不到9662线程(即nid 0x25be)。有0x25bf,0x25ba,0x25bd等)

不杀死-3转储所有线程吗?我只是感到困惑,为什么在线程转储中没有出现线程,还有哪些其他选项。。我尝试了jstack,也找不到这个0x25be。接下来,我将尝试jcmd。

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。