|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Lev Walkin 2:5020/400 29 Jan 2004 18:46:56 To : Igor Sysoev Subject : Re: незакрытые сокеты -------------------------------------------------------------------------------- Igor Sysoev wrote: > Lev Walkin <vlm@netli.com> wrote: > > >>Igor Sysoev wrote: >> >>>Lev Walkin <vlm@netli.com> wrote: >>> >>> >>>>Slawa Olhovchenkov wrote: >>>> >>>> >>>>>А как можно уменьшить количество болтающихся сокетов в состоянии >>>>>TIME_WAIT/FIN_WAIT_2? >>>> >>>>SO_REUSEADDR использовать в программе. >>>>Лучше _после_ accept()'а. >>> >>>А как SO_REUSEADDR этому поможет ? >> >>я ждал этого вопроса ;) >> >>поможет тем, что включает широко известный в узких кругах сайд-эффект. >>он заключается в том, что для новых сокетов могут использоваться >>закрытые сокеты, сидящие в TIME_WAIT. Обычно они так и сидят в этом >>состоянии 2MSL, но при наличии флага SO_REUSEADDR вместо создания >>нового сокета ядро может выбрать вариант их реиспользования. >>это не значит, что в системе совсем не будет TIME_WAIT, но это количество >>имеет достаточно четкую верхнюю границу при известной загрузке. >> >>почему нужно делать после accept()'а? потому что флаг должен быть на >>сокете сидящем в TIME_WAIT, а не в LISTEN, а некоторых других OS >>(обладающих тем же сайд-эффектом, впрочем) флаги на listen-сокете >>не наследуются на сокеты, получающиеся через accept(). поэтому нужно >>либо #ifdef'ить, либо перестраховаться и устанавливать SO_REUSEADDR >>всегда после каждого accept()'а. > > > А где такое есть ? Поиск по фрёвым листам и lkml на предмет SO_REUSEADDR > и TIME_WAIT подобной особенности SO_REUSEADDR не выявил. фольклор. (быстрый поиск сейчас дал: http://216.239.57.104/search?q=cache:N5QiEJPxqJQJ:members.cox.net/~ndav1/stratas phere/server_wont_start.doc+SO_REUSEADDR+TCP+TIME_WAIT&hl=en&ie=UTF-8 ) > Единственное, в 5.2 в src/sys/netinet/tcp_subr.c rev.1.164 и 1.165 было > сделано ограничение, чтобы TIME_WAIT не превышал 20% от всех используемых > сокетов. мне пришлось добавить его в ports/net/ipcad, чтобы он не блокировался при частых rsh'ных дерганиях. так что практика - критерий истины. -- Lev Walkin vlm@netli.com --- ifmail v.2.15dev5.2 * Origin: Netli, Inc. (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/9104a9933169.html, оценка из 5, голосов 10
|