[Pdns-users] PowerDNS performance compared to other nameservers

Mike Benoit ipso at snappymail.ca
Wed Dec 3 03:45:02 UTC 2003

I would say the author of that article isn't comparing apples to apples.

In a real-world PowerDNS installation with a MySQL backend, I'm
currently seeing 212q/s (non-peak hours), (load average: 0.30, 0.30,
0.38) this is with fairly heavy logging enabled and only a 24% cache hit
rate. (Way lower then we normally see) We've also seen spikes as high as
2200q/s. The server is a old single processor P3-866 with 1gb ram
running PowerDNS, MySQL, and Bind (for recursion) on the same machine.

Here are the current stats PowerDNS gives me:
Uptime:  8.92  hours Queries/second, 1, 5, 10 minute averages: 212,
211,  212. Max queries/second:
   Cache hitrate, 1, 5, 10 minute averages: 24%, 24%, 24%
   Backend query cache hitrate, 1, 5, 10 minute averages: 95%, 95%, 95%
   Backend query load, 1, 5, 10 minute averages: 43.1, 44, 48.1. Max
queries/second: 283
   Total queries: 8880016. Question/answer latency: 0.022ms

I've run many benchmarks against PowerDNS, and I would honestly have to
say it would be difficult for me to get the queries/sec as low as what
the author of this comparison got. 13q/s?! My guess is he used a default
installation of both PowerDNS and PostgreSQL to benchmark against. This
shows very poor judgment on his part, especially since PostgreSQL is
well known for having absolute horrid performance out of the box. They
purposely set memory usage values so low that it will work on old legacy
hardware with less shared memory then my portable MP3 player! ;)

For this benchmark to be a "fair" comparison, PowerDNS would have to be
reporting a 100% cache hit rate _before_ the benchmark is even started.
Since that is what Bind and most other name servers do, read _all_ the
zones in to memory (cache) on startup, before they answer any queries.
Add 100,000 zones to Bind, and time the startup process + 1,000,000
queries and I bet PowerDNS would pull ahead! This is the main reason we
switched to PowerDNS, Bind would take 5-10minutes just to start, and
constantly needed more ram, even for zones that were never queried.
PowerDNS is much more memory efficient in this regard. 

His comparison is like having two race cars on a track, only one doesn't
have any fuel. So once the light turns green, one car has to be fueled
up before it even starts the race. Hardly a fair comparison.

No matter what though, you would be a fool to switch to PowerDNS if raw
performance was an issue. For the most part, the reason people use
PowerDNS is because they want to be able to modify DNS records using
simple SQL queries, and having the changes take effect immediately,
without having to restart bind, or dump a bunch of text files. Again the
author of this benchmark shows his lack of thought by stating that
having DNS servers with a database backend "is quite useless". On the
contrary, having PowerDNS available allowed us to offer our customers a
service that most other hosting companies to this day still don't offer.
Immediate DNS changes from a web site. You simply can not do this to any
scale (ie: >50,000 zones) with Bind. 

On Tue, 2003-12-02 at 08:07, Markus Welsch wrote:
> Hi,
> I've just came accross a small page comparing PowerDNS with a few other 
> nameservers:
> 	http://www.nic-generique.prd.fr/sheets/practical/nameserver-en.html
> Cheers,
> Markus
> _______________________________________________
> Pdns-users mailing list
> Pdns-users at mailman.powerdns.com
> http://mailman.powerdns.com/mailman/listinfo/pdns-users
Mike Benoit <ipso at snappymail.ca>

More information about the Pdns-users mailing list