[dns-operations] DNS server benchmarking sanity check

Hannes Frederic Sowa hannes at stressinduktion.org
Tue Aug 16 09:59:16 UTC 2016

On 16.08.2016 03:03, Robert Edmonds wrote:
> I have an idea for a meta-experiment: we could invite a couple of kernel
> network developers to a DNS-OARC, and feed them coffee/beer until all of
> our kernel questions are answered :-)

Hehe! :)

Anyway, I would be really interested to see any perf record/perf report
scripts for your workloads.

UDP performance became much more important recently but mostly because
of all the new shiny tunneling protocols (vxlan, geneve). So it gets
looked again more closely.

Unfortunately those optimizations don't really benefit the unconnected
UDP socket case. Recent ideas, like UDP vectors, where packets are
combined based on the 4-tuple much earlier in the kernel only help for
streams of UDP packets. Or we actually make use of the fact that we know
the inner protocol and do the usual TCP optimizations within the UDP packet.

The recent addition of SO_INCOMING_CPU setsockopt also only helps if the
full 4-quad tuple is known before packet processing time.

I do have some ideas which should be worth to try out in regard to speed
up SO_REUSEPORT case (especially that we steer the packet to a cpu-local
socket instead of just the first in the hash bucket). We specifically do
that in the non-early demuxed cases (net.ipv4.ip_early_demux == 0) but
not if we early demux.

Otherwise it would be great to see more data, especially from kernel
profiling tools.


More information about the dns-operations mailing list