|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Igor Sysoev 2:5020/400 04 Feb 2004 19:14:12 To : Slawa Olhovchenkov Subject : Re: sendfile -------------------------------------------------------------------------------- Slawa Olhovchenkov <Slawa.Olhovchenkov@f500.n5030.z2.fidonet.org> wrote: > 04 Feb 04, Igor Sysoev writes to Slawa Olhovchenkov: > > >> IS> А при чём здесь TIME_WAIT ? Hасколько я понимаю, сокеты в этом > >> IS> состоянии не жрут дескрипторы, они жрут pcb (там, кажется, это > >> IS> называется). > >> > >> Может быть _просто сокеты_ и не жрут дескрипторы, но вот _sendfile > >> socket_ -- жрут. Проверяется через lsof и netstat. > > IS> Есть сервер, который висит на одном адресе. > > У меня тоже есть такое > > >> fstat | grep nginx | grep tcp | wc -l; netstat -n | grep 81.19.69.64.80 > >> | > >> egrep -v '(SYN|LISTEN)' | wc -l; netstat -n | grep 81.19.69.64.80 | grep > >> TIME_WAIT | wc -l > IS> 445 > IS> 792 > IS> 52 > >> > > IS> Легко видеть, что первое число - tcp соединения, открытые сервером, > IS> второе - все соединения, кроме SYN* и LISTEN, а третье - TIME_WAIT. > > IS> Все tcp соединения - это sendfile. TIME_WAIT'ов мало, потому что > IS> обрабатывается около 5 соединений в секунду и стоит keep-alive на 70 > IS> секунд - MSIE закрывает соединение сам. > > Э, это должно мне что-то показать? Сервер открыл 445 сокета. Каждый их них - это дескриптор файла, переданный sendfile()у. netstat показывает 792 соединения в разных состояниях - от ESTABLIHED до TIME_WAIT. Следуя твоей логике ("Может быть _просто сокеты_ и не жрут дескрипторы, но вот _sendfile socket_ -- жрут"), fstat должен показать те же 792 сокета. Однако он показывает чуть ли не в два раза меньше. -- Игорь Сысоев http://sysoev.ru --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/65773652ca2d.html, оценка из 5, голосов 10
|