[Pdns-users] Some DNS performance tests with various PDNS backends and BIND9
Nick Milas
nmilas at admin.noa.gr
Wed May 11 18:17:00 UTC 2011
UPDATED: In the meantime I have managed to run the test with
BIND9/SDB/LDAP, so I am resending the whole message for completeness.
Just in case someone would like to examine some comparative performance
results re. various PowerDNS backends with ref. to BIND9, I am posting
the following tests.
In case you think something should be changed in the setup to make
results more objective and more real-life, please let me know.
Comments would be welcome and appreciated.
Test Setup:
==========
Running queryperf from a (virtual) machine ("vdns") against an
Authoritative-only DNS server running on another (virtual) machine
("vdev") on the same LAN (Both virtual machines run on a VM cluster).
DNS server logging was off in all cases.
Both machines are running CentOS 5.6 x86_64. The data file
(examplecom.txt) included 736 type A records. (All the forward type "A"
RRs used in our domain.) The file was cycled during 60 seconds.
Of course, test results are only relative to the particular hardware
setup, so they should not be compared to other test results.
IP addresses and domain names have been changed as they are public.
Results:
========
(Using BIND9 9.3.6 (13615 qps) as reference)
---------------------------------------------
BIND9 9.3.6 : 13615 qps -
BIND9 9.7.3 : 12731 qps ===> -6.5%
BIND9 9.7.3/SDB/LDAP : 370* qps ===> -97.3%
PDNS 2.9.22 / BIND : 17683 qps ===> +29.9%
PDNS 2.9.22 / MYSQL : 16879 qps ===> +24.0%
PDNS 2.9.22 / LDAP : 17339 qps ===> +27.4%
---------------------------------------------
* See comment at the bottom of the last test.
A conclusion is that, under this setup, PDNS/LDAP appears faster than
any other setup, except PDNS/BIND (from which it is only -1,95% slower).
Note that the Openldap cache size was set large enough to hold the
entire database (as it should).
The test confirms the slow qps rate when running using BIND9/SDB/LDAP.
Nick
==============================================================
Test 1: Using PowerDNS 2.9.22 (CentOS repo) - BIND backend:
==============================================================
./queryperf -d examplecom.txt -s 10.10.10.11 -l 60
DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.12 2007/09/05 07:36:04 marka Exp $
[Status] Processing input data
[Status] Sending queries (beginning with 10.10.10.11)
[Status] Testing complete
Statistics:
Parse input file: multiple times
Run time limit: 60 seconds
Ran through file: 1441 times
Queries sent: 1061006 queries
Queries completed: 1061006 queries
Queries lost: 0 queries
Queries delayed(?): 0 queries
RTT max: 0.041637 sec
RTT min: 0.000069 sec
RTT average: 0.001046 sec
RTT std deviation: 0.000376 sec
RTT out of range: 0 queries
Percentage completed: 100.00%
Percentage lost: 0.00%
Started at: Tue May 10 21:01:01 2011
Finished at: Tue May 10 21:02:01 2011
Ran for: 60.000656 seconds
Queries per second: 17683.239997 qps
======================================================
Test 2: PowerDNS 2.9.22 - LDAP backend on Openldap v2.4.25 w/ hdb
backend running locally
======================================================
[root at vdns queryperf]# ./queryperf -d examplecom.txt -s 10.10.10.11 -l 60
DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.12 2007/09/05 07:36:04 marka Exp $
[Status] Processing input data
[Status] Sending queries (beginning with 10.10.10.11)
[Status] Testing complete
Statistics:
Parse input file: multiple times
Run time limit: 60 seconds
Ran through file: 1413 times
Queries sent: 1040546 queries
Queries completed: 1040546 queries
Queries lost: 0 queries
Queries delayed(?): 0 queries
RTT max: 0.668537 sec
RTT min: 0.000110 sec
RTT average: 0.001070 sec
RTT std deviation: 0.001224 sec
RTT out of range: 0 queries
Percentage completed: 100.00%
Percentage lost: 0.00%
Started at: Tue May 10 21:06:58 2011
Finished at: Tue May 10 21:07:58 2011
Ran for: 60.013004 seconds
Queries per second: 17338.675464 qps
===================================================================
Test 3: BIND 9.3.6 (CentOS standard) with flat files):
===================================================================
[root at vdns queryperf]# ./queryperf -d examplecom.txt -s 10.10.10.11 -l 60
DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.12 2007/09/05 07:36:04 marka Exp $
[Status] Processing input data
[Status] Sending queries (beginning with 10.10.10.11)
[Status] Testing complete
Statistics:
Parse input file: multiple times
Run time limit: 60 seconds
Ran through file: 1109 times
Queries sent: 816941 queries
Queries completed: 816941 queries
Queries lost: 0 queries
Queries delayed(?): 0 queries
RTT max: 0.113733 sec
RTT min: 0.000091 sec
RTT average: 0.001394 sec
RTT std deviation: 0.000761 sec
RTT out of range: 0 queries
Percentage completed: 100.00%
Percentage lost: 0.00%
Started at: Tue May 10 21:12:10 2011
Finished at: Tue May 10 21:13:10 2011
Ran for: 60.001007 seconds
Queries per second: 13615.454821 qps
==================================================================
Note: Upgraded to BIND9 packages at:
http://centos.alt.ru/pub/bind/9.7.3/RPMS/x86_64/
==================================================================
Test 4: BIND 9.7.3 with flat files:
==================================================================
[root at vdns queryperf]# ./queryperf -d examplecom.txt -s 10.10.10.11 -l 60
DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.12 2007/09/05 07:36:04 marka Exp $
[Status] Processing input data
[Status] Sending queries (beginning with 10.10.10.11)
[Status] Testing complete
Statistics:
Parse input file: multiple times
Run time limit: 60 seconds
Ran through file: 1037 times
Queries sent: 763897 queries
Queries completed: 763897 queries
Queries lost: 0 queries
Queries delayed(?): 0 queries
RTT max: 0.027807 sec
RTT min: 0.000058 sec
RTT average: 0.001497 sec
RTT std deviation: 0.000435 sec
RTT out of range: 0 queries
Percentage completed: 100.00%
Percentage lost: 0.00%
Started at: Tue May 10 21:33:35 2011
Finished at: Tue May 10 21:34:35 2011
Ran for: 60.001197 seconds
Queries per second: 12731.362676 qps
===================================================================
Test 5: PowerDNS 2.9.22 (CentOS standard) with gmysql backend with Mysql
5.0.77
===================================================================
[root at vdns queryperf]# ./queryperf -d examplecom.txt -s 10.10.10.11 -l 60
DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.12 2007/09/05 07:36:04 marka Exp $
[Status] Processing input data
[Status] Sending queries (beginning with 10.10.10.11)
[Status] Testing complete
Statistics:
Parse input file: multiple times
Run time limit: 60 seconds
Ran through file: 1376 times
Queries sent: 1012756 queries
Queries completed: 1012756 queries
Queries lost: 0 queries
Queries delayed(?): 0 queries
RTT max: 0.047820 sec
RTT min: 0.000078 sec
RTT average: 0.001095 sec
RTT std deviation: 0.000383 sec
RTT out of range: 0 queries
Percentage completed: 100.00%
Percentage lost: 0.00%
Started at: Wed May 11 13:53:43 2011
Finished at: Wed May 11 13:54:43 2011
Ran for: 60.000824 seconds
Queries per second: 16879.034861 qps
===================================================================
Test 6: BIND 9.7.3 / SDB / LDAP
(on Openldap v2.4.25 w/ hdb backend running -replicated- locally)
===================================================================
[root at vdns queryperf]# ./queryperf -d examplecom.txt -s 10.10.10.11 -l 60
DNS Query Performance Testing Tool
Version: $Id: queryperf.c,v 1.12 2007/09/05 07:36:04 marka Exp $
[Status] Processing input data
[Status] Sending queries (beginning with 10.10.10.11)
[Status] Testing complete
Statistics:
Parse input file: multiple times
Run time limit: 60 seconds
Ran through file: 22 times
Queries sent: 16824 queries
Queries completed: 16824 queries
Queries lost: 0 queries
Queries delayed(?): 0 queries
RTT max: 0.600510 sec
RTT min: 0.006491 sec
RTT average: 0.071317 sec
RTT std deviation: 0.039023 sec
RTT out of range: 0 queries
Percentage completed: 100.00%
Percentage lost: 0.00%
Started at: Wed May 11 20:28:15 2011
Finished at: Wed May 11 20:29:15 2011
Ran for: 60.066465 seconds
Queries per second: 280.089731* qps
* Due to running on VMs, results depend on total cluster load.
To adjust, when running this test, we run the others too, which proved
25% slower for all setups. So at the "table" of results we adjusted this
figure to compensate for this effect (Adjusted number: 370 qps).
=======================================================================
More information about the Pdns-users
mailing list