[dns-operations] DNS server benchmarking sanity check

Mark Delany x2t at foxtrot.emu.st
Mon Aug 15 19:45:52 UTC 2016

> On my hardware (10 cpus, visible as 20 to the OS), running nsd with 20
> worker processes and SO_REUSEPORT, it is able to answer 100% of the
> queries at 1.2 million q/s

And this is on a single IP/port? If so, that's pretty good. If it's
multiple IPs/ports, that's in line with what I remember seeing.

> The other name servers don't use multiple processes, but instead use
> threads.

Right. This is more getting into whether a particular implementation
is optimal vs absolute thruput of a system. I'm presuming this thread
is more about the latter.

> at which point cpu usage is 100%

As others have mentioned the ratio between user/sys would be
interesting as well as how that ratio changes as you add cores.

After about 10 cores I could keep adding them but all it did was
increase system time with no increase in qps.

> once cpu utilisation is at 100%, there's probably not much more I can do

Unless most of the cpu is kernel spin-locking or similar. Not a
problem you can fix directly, but good to know.

One way I used to measure this was system time per query. If the
kernel is efficient it should stay just shy of linear as you add cpus
rather than exhibit a dramatic dropoff.


More information about the dns-operations mailing list