------- Original Msg ----- From: "RunxiaWan" <wanrun...@aliyun.com> 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: Statistics: 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 BII Lab Beijing Internet Institute(BII) rx...@biigroup.cn --------------------------------------- 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! John -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.isc.org/pipermail/bind-users/attachments/20160115/f9cc36a7/attachment-0001.html> ------------------------------ _______________________________________________ bind-users mailing list bind-users@lists.isc.org https://lists.isc.org/mailman/listinfo/bind-users End of bind-users Digest, Vol 2288, Issue 1 ******************************************* _______________________________________________ Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from this list bind-users mailing list bind-users@lists.isc.org https://lists.isc.org/mailman/listinfo/bind-users