SO_REUSEPORT: strange kernel balancer behaviour

Sepherosa Ziehau sepherosa at gmail.com
Mon Jul 15 02:38:01 UTC 2013


On Sat, Jul 13, 2013 at 1:16 PM, trafdev <trafdev at 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

-- 
Tomorrow Will Never Die


More information about the freebsd-net mailing list