[Pdns-users] Some DNS performance tests with various PDNS backends and BIND9
Nick Milas
nmilas at admin.noa.gr
Wed May 11 11:58:41 UTC 2011
Hello,
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, please let me know.
Comments would be welcome and appreciated.
NOTE: I would like to run the same test against BIND9/SDB with LDAP
backend, but I had a hard time trying to migrate my pdns LDAP data to
bind-sdb LDAP entries. zone2ldap BIND9 tool also fails after a few
entries (I've abandoned trying). IF SOMEONE HAS A SCRIPT FOR SUCH A
MIGRATION, PLEASE LET ME KNOW.
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:
========
With BIND9 9.3.6 (13615 qps) as reference:
we have:
BIND9 9.7.3: 12731 qps ===> -6.5%
PDNS - BIND: 17683 qps ===> +29.9%
PDNS- MYSQL: 16879 qps ===> +24.0%
PDNS - LDAP: 17339 qps ===> +27,4%
A conclusion is that, under this setup, PDNS/LDAP appears faster than
any other DNS server, 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).
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
=======================================================================
More information about the Pdns-users
mailing list