Re: SO_REUSEPORT - can it be done in kernel?

Eric Dumazet
2011-02-28T17:10:21Z

Le lundi 28 février 2011 à 11:37 -0500, Thomas Graf a écrit :

> How do you measure the qps? The output of queryperf? That is not always
> accurate. I run rdnc stats twice and then calculate the qps based on the
> counter "queries resulted in successful answer" diff and timestamp diff.
>

I have some custom ethernet/system monitoring package installed, so I
get packet rates from it.

I appears my two source machines were not fast enough. (One had LOCKDEP
kernel).

I now reach 320 kqps, even if I force NIC interrupts through one cpu
only.

> The numbers differ a lot depending on the architecture we test on.
>
> F.e. on a 12 core AMD with 2 NUMA nodes:
>
> 2.6.32 named -n 1: 37.0kqps
> named: 3.8kqps (yes, no joke, the socket receive buffer is
> always full and the kernel drops pkts)

Yes, this old kernel miss commit c377411f2494a93 added in 2.6.35
(net: sk_add_backlog() take rmem_alloc into account)

Quoting the change log :

Under huge stress from a multiqueue/RPS enabled NIC, a single flow udp
receiver can now process ~200.000 pps (instead of ~100 pps before the
patch) on a 8 core machine.

>
> 2.6.38-rc5+ with Herbert's patches:
> named -n 1: 36.9kqps
> named: 222.0kqps