У меня есть приложение, которое исчерпывает файловые дескрипторы, очевидно, открывая сокеты, но я не могу точно выяснить, что делают эти сокеты. Они появляются в выводе lsof как
java 9689 appuser 1010u sock 0,5 263746675 can't identify protocol
java 9689 appuser 1011u sock 0,5 263746676 can't identify protocol
java 9689 appuser 1012u sock 0,5 263746677 can't identify protocol
java 9689 appuser 1014u sock 0,5 263746678 can't identify protocol
java 9689 appuser 1015u sock 0,5 263746679 can't identify protocol
java 9689 appuser 1016u sock 0,5 263746681 can't identify protocol
и в / proc / $ PID / fd как
lrwx------ 1 appuser appuser 64 Jun 23 11:49 990 -> socket:[263732085]
lrwx------ 1 appuser appuser 64 Jun 23 11:49 991 -> socket:[263732086]
lrwx------ 1 appuser appuser 64 Jun 23 11:49 992 -> socket:[263735307]
lrwx------ 1 appuser appuser 64 Jun 23 11:49 993 -> socket:[263732088]
lrwx------ 1 appuser appuser 64 Jun 23 11:49 995 -> socket:[263735308]
lrwx------ 1 appuser appuser 64 Jun 23 11:49 996 -> socket:[263735309]
lrwx------ 1 appuser appuser 64 Jun 23 11:49 997 -> socket:[263745434]
lrwx------ 1 appuser appuser 64 Jun 23 11:49 998 -> socket:[263745435]
lrwx------ 1 appuser appuser 64 Jun 23 11:49 999 -> socket:[263745436]
но нет аналогичного выхода в netstat -a
.
Что это за сокеты и как я могу узнать, что они делают?
Изменить : я попытался запустить grep $SOCKET /proc/net
, как рекомендовано в FAQ lsof , где $ SOCKET, например, 263746679, но это также не дало никаких результатов.
В качестве фона приложение является контейнером для множества задач, которые, помимо прочего, выполняют сетевые вызовы. Мне нужно выделить тот, который приходит в бешенство, но пока я не выясню, с кем общаются эти сокеты, я застрял.