Re: SO_REUSEPORT - can it be done in kernel?
From: Eric Dumazet <hidden>
Date: 2011-02-28 17:10:21
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