Problem in Performance test

MURTARI, JOHN jm5903 at
Fri Jan 15 13:56:40 UTC 2016

------- Original Msg -----
From: "RunxiaWan" <wanrunxia at>
Subject: Problem in Performance test

Hi all,
I am doing performance test for my company's resolver with BIND 9.10.3 and
find something weird. The test client and resolver are in the same LAN. When
I use a small set of domain as an input with a 10000 per second query
sending rate, everything looks reasonable. However, when I use a set of
thousands of domains as an input, The QPS is unexpectedly low and the
latency is high. Here is the result from DNSperf:

  Queries sent:         11823
  Queries completed:    11823 (100.00%)
  Queries lost:         0 (0.00%)

  Response codes:       NOERROR 9883 (83.59%), SERVFAIL 242 (2.05%),
NXDOMAIN 1698 (14.36%)
  Average packet size:  request 48, response 203
  Run time (s):         69.891567
  Queries per second:   169.162039

  Average Latency (s):  0.519502 (min 0.003766, max 211.981919)
  Latency StdDev (s):   1.423057

And when I decreased the query sending rate to 100 per second, the latency
decrease as the same when I use small set of domain as an input. Here is the
result from DNSperf:


  Queries sent:         6000
  Queries completed:    6000 (100.00%)
  Queries lost:         0 (0.00%)

  Response codes:       NOERROR 4995 (83.25%), SERVFAIL 37 (0.62%), NXDOMAIN
968 (16.13%)
  Average packet size:  request 54, response 211
  Run time (s):         62.789257
  Queries per second:   95.557748

  Average Latency (s):  0.083028 (min 0.005266, max 134.543920)
  Latency StdDev (s):   0.568863

Anyone knows any explanation for this? Thanks.
Runxia Wan(Brian)
Research Engineer
Beijing Internet Institute(BII)
rxwan at

Few  things are affecting the resolver test:
1) A resolver is allowed to cache answers, in your small test of zones  it may have done a series of iterative queries to find the answers, but once it had the answers, future queries were answered from cache -- easy going and high QPS, just limited by your memory/cpu performance.

2) When you added thousands of random sites it took it much longer to perform all the look ups and begin storing cached results.  A much more realistic test, but slower going.

3) Not sure if you stopped/started named after each test?  If you just left it running, it still had many results cached and could use those in subsequent tests.

4) UDP queue length - a realistic test would have several clients running dnsperf and querying the same resolver.  As the resolver falls behind, the UDP queue of waiting requests grows and some of those are just dropped by the OS.

There's a lot going on under the hood!
Hope this helps!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>


bind-users mailing list
bind-users at

End of bind-users Digest, Vol 2288, Issue 1

More information about the bind-users mailing list