SO_REUSEPORT

Valentin V. Bartenev vbart at nginx.com
Tue Nov 24 13:42:22 UTC 2015


On Wednesday 25 November 2015 00:25:19 SplitIce wrote:
> Hi all,
> 
> I couldn't find anything in the mailing list about this issue, surely we
> are not the only one?
> 
> When activating reuseport I am seeing all requests be served from a single
> nginx process. All others are just idling (SIGALARM interruption of
> epoll_wait / epoll_wait timeout according to strace).
> 
> Process 442 attached - interrupt to quit
> epoll_wait(60, 8225010, 512, 4294967295) = -1 EINTR (Interrupted system
> call)
> --- SIGALRM (Alarm clock) @ 0 (0) ---
> rt_sigreturn(0xe)                       = -1 EINTR (Interrupted system call)
> epoll_wait(60, 8225010, 512, 4294967295) = -1 EINTR (Interrupted system
> call)
> --- SIGALRM (Alarm clock) @ 0 (0) ---
> 
> 
> 
> This only occurs with reuseport, as soon as it is disabled the load is
> correctly distributed again.
> 
> Configuration:
> worker_processes 12; # 2x8 cores on server
> multiple server blocks on different IP's and ports with reuseaddr.
> Linux kernel: 3.18.20
> 
> Server nic has interrupts over all cores:
> 
> # sudo ethtool -S eth0 |grep rx | grep pack
>      rx_packets: 11244443305
>      rx_queue_0_packets: 1381842455
>      rx_queue_1_packets: 1373383493
>      rx_queue_2_packets: 1490287703
>      rx_queue_3_packets: 1440591930
>      rx_queue_4_packets: 1378550073
>      rx_queue_5_packets: 1373473609
>      rx_queue_6_packets: 1437806438
> 
> 
> We have also experimented with disabling iptables and anything else on the
> server that could be interfering. I have also loaded it onto three other
> fresh servers with the same kernel (same OS image), but with different nic
> cards (with and without multiple rx queues) with no changes.
> 
> This has me stumped. Ideas?
> 

You should try another kernel.

  wbr, Valentin V. Bartenev



More information about the nginx-devel mailing list