Date: Mon, 15 Jul 2013 12:31:59 -0700 From: trafdev <trafdev@mail.ru> To: Sepherosa Ziehau <sepherosa@gmail.com> Cc: freebsd-net@freebsd.org Subject: Re: SO_REUSEPORT: strange kernel balancer behaviour Message-ID: <51E44E2F.8060700@mail.ru> In-Reply-To: <CAMOc5cz6gP2N62T4QhbTdVar94O4FSdPDsqktD_9vJ0mYVqt_Q@mail.gmail.com> References: <51E0E2AF.7090404@mail.ru> <CAMOc5cz6gP2N62T4QhbTdVar94O4FSdPDsqktD_9vJ0mYVqt_Q@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for reply. This approach produces lot of "resource temporary unavailable" (eagain) on accept-ing connections in N-1 processes. Is this possible to avoid this by e.g. tweaking kqueue? On Sun Jul 14 19:37:59 2013, Sepherosa Ziehau wrote: > On Sat, Jul 13, 2013 at 1:16 PM, trafdev <trafdev@mail.ru> wrote: >> Hello. >> >> Could someone help with following problem of SO_REUSEPORT. > > The most portable "load balance" between processes listening on the > same TCP addr/port probably is: > > s=socket(); > bind(s); > listen(s); > /* various socketopt and fcntl as you needed */ > pid=fork(); > if (pid==0) { > server_loop(s); > exit(1); > } > server_loop(s); > exit(1); > > Even in Linux or DragonFly SO_REUSEPORT "load balance" between > processes listening on the same TCP addr/port was introduced recently, > so you probably won't want to rely on it. > > Best Regards, > sephe >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51E44E2F.8060700>