[Pdns-users] PowerDNS cannot handle the load?
Brad Knowles
brad.knowles at skynet.be
Wed Apr 23 23:11:20 UTC 2003
At 10:23 AM -0700 2003/04/23, Mike Benoit wrote:
> Consistent, but how long do they take to startup? BIND takes so long to
> startup because it basically pre-caches all the zones (before it starts
> serving any even?).
Not true, not for BIND 9 at least. BIND 9 starts answering
queries immediately on startup, at least for the zones that it has
loaded so far (obviously, you can't answer for data you don't have).
> PDNS approaches this a different way, and simply
> starts serving answers immediately after starting.
PowerDNS may have "started" and trying to answer queries
immediately on startup, but like BIND it can't answer for data it
hasn't loaded yet. The issue is how fast can PowerDNS get the data
from the back-end database and put that into its cache.
> I don't think your comparing apples to apples here. Try timing a script
> that does this:
>
> start bind
In background. Don't wait for the start to complete before you
start firing queries at it. You want to look at how it handles
queries during startup.
> run test 1
> run test 1
> run test 1
These will need to be timed runs, or runs of a fixed number of
queries. Pick your poison. If you make them timed runs of short
period, you can get some measure of just how long it takes to go from
starting BIND (in background) to where it has loaded all the zones.
> stop bind
>
> Might want to reboot before each run. Now try PDNS
>
> start pdns
Same deal -- start in background.
> Even this isn't really fair, since BIND can load all the zones with
> little overhead, but to get PDNS to the same state (all zones in cache)
> you have to query every zone, thus including the overhead of sending DNS
> queries to it.
>
> Perhaps Bert would be interested in creating functionality to auto-cache
> zones? ie: "pdns_control cache_all_zones" or "pdns_control cache
> <domain>". I don't see this as being that useful though.
Once you've done the queries that will hit all records in all
zones, you can test the steady-state performance of both servers,
which is what we really care about.
You cause all records in all zones to be loaded (thus causing the
cache to be maximized in size) because you don't know, a priori,
precisely which records will be asked for in what order in a
real-world scenario. Sure, you can capture a complete list of
queries that occur over a given period of time and use that as your
test input, but there's nothing to say that the pattern of queries
during this period of time is an accurate simulation of future
performance.
In the case of BIND, the real-world performance should be no
worse than this test shows, assuming the queries are generated with a
comparable frequency and latency. However, in the case of PowerDNS,
the real-world performance might actually be better than the
benchmark, because you shouldn't be caching all records.
--
Brad Knowles, <brad.knowles at skynet.be>
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety."
-Benjamin Franklin, Historical Review of Pennsylvania.
GCS/IT d+(-) s:+(++)>: a C++(+++)$ UMBSHI++++$ P+>++ L+ !E-(---) W+++(--) N+
!w--- O- M++ V PS++(+++) PE- Y+(++) PGP>+++ t+(+++) 5++(+++) X++(+++) R+(+++)
tv+(+++) b+(++++) DI+(++++) D+(++) G+(++++) e++>++++ h--- r---(+++)* z(+++)
More information about the Pdns-users
mailing list