>Откуда вам известен fd??? Например, небольшой кусок:
$ ls -la /proc/PID/fd/
lrwx------ 1 vadim users 64 2010-06-14 14:05 60 -> socket:[12835000]
lrwx------ 1 vadim users 64 2010-06-14 14:05 600 -> socket:[12932508]
lrwx------ 1 vadim users 64 2010-06-14 14:05 601 -> socket:[12932605]
lrwx------ 1 vadim users 64 2010-06-14 14:05 602 -> socket:[12932697]
lrwx------ 1 vadim users 64 2010-06-14 14:05 603 -> socket:[12932734]
lrwx------ 1 vadim users 64 2010-06-14 14:05 604 -> socket:[12932932]
lrwx------ 1 vadim users 64 2010-06-14 14:05 605 -> socket:[12932956]
lrwx------ 1 vadim users 64 2010-06-14 14:05 606 -> socket:[12933047]
lrwx------ 1 vadim users 64 2010-06-14 14:05 607 -> socket:[12933081]
lrwx------ 1 vadim users 64 2010-06-14 14:05 608 -> socket:[12933103]
lrwx------ 1 vadim users 64 2010-06-14 14:05 609 -> socket:[12933136]
>Если я угадал с TIME_WAIT/FIN_WAIT, то ваше приложение уже сделало close() на
>этих сокетах
>и fd не существует. Есть inode которые показывает lsof, но netstat к
>сожалению их не показывает. Можно пытаться искать руками [grep INODE /proc/net],
>но скорее всего оно ничего не найдет.
Так и есть.
>Попробовал воспроизвести такую ситуацию:
>TCP сервер отсылает 10k мусора и закрывает сокет. Клиент 100 потоков в
>цикле (jakarta-jmeter).
>Картина похожа на вашу: lsof дико тормозит и показывает кучу строк
>testd 2082 guest 15u
>sock 0,4
> 1376395 can't identify protocol
То есть, можно воспринять, что программа в общем и не делает ошибок? Хотя я ни разу с таким не сталкивался.
>>И можно ли как-то уменьшить значение TIME_WAIT, чтобы система чаще их закрывала?
>
>глобально /proc/sys/net/ipv4/tcp_fin_timeout , на уровне приложения может помочь SO_LINGER, но сначало наверное
>лучше разобраться, так ли все на самом деле происходит.
Да, хочется выяснить проблему сначала.
>>Потому что действительно, в какой-то момент времени (несколько раз в день),
>>количество файлов уменьшается.
>
>Это не то, "полузакрытые" сокеты живут минуты, а никак не часы. Вам
>виднее что же имено делает это приложение, скорее всего просто падает
>нагрузка - соотвественно и соединений меньше.
Еще у меня есть такое подозрение: в качестве сервера -- sles 10 SP1(на всякий случай), lsof тормозит, и пока он тормозит программа успевает открывать и закрывать файлы, отсюда и такое количество.
>Раскажите пожалуйста побольше про это приложение, что оно делает?
Сложно рассказать, так как сам обладаю не большой информацией, кроме как той, что это такая финансовая система, принимающая подключения клиентов, от которых приходят некие заявки. Клиентов не много. Ну, где-то около 70, вообще, подключаются не каждый день. Я попробую выудить это у программистов, хотя они явно не скоро дадут такую инфу.