Skip site navigation (1)Skip section navigation (2)
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>