Performance of Caching Name Servers

Hi everyone!

I have configured a machine in my LAN as a Caching Name Servers using Unbound. Then I test the performance of this CNS from another host in the same LAN with the tool resperf come with dnsperf. And the throughput of this CNS I got is about 5376qps. After that I reconfigured this CNS using BIND9 instead of Unbound and got about 24582qps throughput. I have tried to change the config file for Unbound(increase those cache size/slabs/numbers) but that doesn’t do any good to the performance of Unbound. Can anyone give me some suggestions on this? Where can I change in the config file to get the most out of Unbound as a CNS? Thanks a lot!

BTW, all my test machines are running Solaris10.

Best Regards
Shuxian

Hi,

Is the machine a multi cpu, multi-core machine? You can increase
num-threads in the config file.

Are you sure that both bind and unbound are treated the same by resperf?
What does resperf measure (what queries does it send?)

What is the bind configuration that you use and what is the unbound
configuration that you use? Are they acting as full resolvers, or do
they forward to another host?

Best regards,
~ Wouter

蔡述宪 wrote:

Hi, Wouter

Thanks a lot for your suggestion!
The machine is an Intel dual-core CPU. I’ll try to increase num-threads and see if it works.
About the queries I send. Yes, I use the same datafile and send the same queries in both Unbound and Bind cases. But actually I don’t know what kind of queries list is the best and how to generate a good one. So I just use a long list of website names. :frowning:
And I configured the machine to forward all queries to the up level DNS server.

  And I configured the machine to forward all queries to the up level DNS
server.

You are testing nothing, unless you can control forwarder up level DNS cache
and you flush cache after each test.

What could have happened is that first run using Unbound filled
uplevel DNS server
cache and when you tested Bind it just reused those entries.

Disable all forwarders and try it again. (And it won't hurt if you
could put your testing
config files online and send a link here...)

Ondrej.

Hi Ondřej
Thank you for your advice. Sorry I’ll put on the config file later cause it’s not available now. I want to test the performance of Unbound as a Cached Name Server and I think a CNS will forward any queries that is not already in its cache,right? So after I disabled the forwarding how can the CNS resolve the queries? And I also think the same as you that the queries may fill the uplevel DNS server’s cache. What I actually did is to run resperf several times first(to make a fair condition for both Unbound and BIND) to fill the underlying uplevel DNS cache and then do the formal test. And in my formal test I use BIND first and then Unbound, but still BIND outperforms Unbound… Your suggestions? Thanks a lot!
Shuxian

Hi,

I think the up-level nameserver is your problem. It is causing these
results. To get the uplevel server to be the same, you can stop and
start the uplevel nameserver between tests. Otherwise the test is not
fair (either way).

Of course, you are still left with the uplevel server talking to the
servers on the internet that change everytime. To fix that you can run
your own authority server that is queried.

Best regards,
~ Wouter

蔡述宪 schreef: