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 (将#修改为@)