При анализе проблемы с производительностью я занимался непрерывными потоками потоков за каждые 5 секунд и анализировался с помощью анализатора дампов samurai. Отмечено, что многие потоки находятся в состоянии runnable с дампом ниже стека непрерывно во всех случаях. Но я не мог найти, с каким хостом они общаются. Я пробовал использовать команды ss -t -a
, watch ss -tp
и netstat -A inet -p
, но не смог связать их результаты с нитью. Есть идеи? Заранее спасибо.Информация о сокетах из дампа нити Linux-Java
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
Это для сервера или клиента? Например. серверный сокет или клиентский сокет? – MojoJojo
Извините, у меня нет этой информации. Все, что у меня есть, это только дамп потока, взятый с сервера. Он взаимодействует со многими интерфейсами, включая DB, Webserver ... и т. Д. Он говорит «SocketInputStream.read». Может быть, это серверный сокет? –
Насколько велика свалка? Можете ли вы загрузить в Github или какую-то другую часть? – MojoJojo