For comparison has been used Knot resolver version 1.1.0, Bind 9.9.5 and Unbound 1.4.22.
For performance check has been used DNS Performance Testing Tool Nominum Version 184.108.40.206.
Kresd, Named and Unbound has been started on one server using different port numbers and test script was started on another server. Test script were send
querries to it using resperf. Amount of querries depends on the amount of the cache usage we are measuring (I am measuring 30% usage means that I am going
to send 30% of the total amount of querries). This first step is made in loop until there is the smallest possible loss of packets at the point of the maximum throughput.
The smallest possible loss of packets means that there is a threshold set to 0% loss at the start. If the test don't reach the threshold after 5 times repetition, it increase
the threshold of 5%.
This means that there is already cached x% querries.
Querries per second (QPS) value is obtained from the resperf output by sending all querries to resolver after first reduced amount of querries.
We are using these parameters to run resperf, where first row is used to fill up the cache and second row is used to perform measurement.
Input data file is splitted into 20 files. First 10 files are made according the percentage of all queries (queryfile_10 contains first 10% of all queries and so on). These x% quieries are
repeated in the file. Second 10 files are made from whole input file merged with percentage file (100_queryfile_10 is made from input file merged with queryfile_10). It is
because resperf needs enough input querries. This repetition should not have influence to results. How it is merged is shown below.
Original input file: |Original|queryfile_10: |10file|100_queryfile_10: |Original|10file|10file|...