【发布时间】:2016-01-07 13:30:18
【问题描述】:
在分析性能问题时,我每 5 秒进行一次连续线程转储,并使用 samurai 线程转储分析器进行分析。请注意,许多线程处于可运行状态,并且在所有情况下都连续出现以下堆栈转储。但我找不到他们正在与哪个主机通信。我尝试使用命令ss -t -a、watch ss -tp 和netstat -A inet -p,但无法将它们的结果与线程相关联。任何想法?提前致谢。
Thread dump 2/5 "TP-Processor125" prio=5 tid=0x25756 nid=0x649c RUNNABLE (JNI Native Code) - stats: cpu=828 blk=-1 wait=-1 java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:628)
at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:566)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:693)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:745) Locked synchronizers: count = 0
【问题讨论】:
-
这是用于服务器还是客户端?例如。服务器套接字还是客户端套接字?
-
抱歉,我没有该信息。我所拥有的只是从服务器获取的线程转储。它与许多接口进行交互,包括 DB、Webserver ... etc.It 说“SocketInputStream.read”。会不会是服务器套接字?
-
转储有多大?您可以上传到 Github 或其他共享吗?
-
我提供的只是线程转储。它只是在进行转储时线程正在做什么的堆栈跟踪。
标签: java linux sockets thread-dump