Hi, in my current project, I have the task of finding out which performance to expect from a PowerDNS authoritative server running on a big machine.
My test box is an HP DL 360 G6 with two quad core hyperthreading CPUs (so I have 8 real cores with Linux seeing 16 cores) and 48 GB RAM running Debian GNU/Linux unstable with kernel 2.6.36, and powerdns 2.9.22.x-3 statically compiled (I ported the packaging of the pdns-static.deb from powerdns.com to x-3). My test setup is deliberately big and contains about ten million zones which are served via mysql backend (MySQL servr running on the same system, connected to via file system socket). The cache of the MySQL server has been warmed up, and the box has enough memory to hold the entire database in RAM (and it does so). The simplest test setup is running dnsperf -s <address> -t 5 -q 5000 -l 600 -d queryfile with a query file containing roughly 4,2 million synthetically generated queries, a good part of them generating NXDOMAIN. After some days of testing, I found out that this setup is fastest when I configure PowerDNS with 32 receiver threads and 48 distributor threads. While the test is running, PowerDNS roughly takes four cores, while MySQL takes eight to ten cores, with a good percentage of the system still being idle, putting out roughly 35 kqps. I would expect the test to be able to saturate my CPUs and thus suspect that there is something wrong in my setup. To take the database out as possible source of error, I have configured PowerDNS to use the bind backend, loaded a single small zone file, and re-ran the test with a query file containing a single A query for an existing record and a single A record for a non-existing record. I expected this setup to be _much_ faster, but I found out that this setup would only use a single of my cores, delivering well below 25 qkps. Setting distributor-threads=1 and disabling the packet cache as suggested in the docs made the system even slower. What am I doing wrong? Why is the bind backend only using one CPU? Why isn't the bind backend much faster than MySQL? What would you recommend to make the MySQL setup faster? Greetings Marc -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834 Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190 _______________________________________________ Pdns-users mailing list Pdns-users@mailman.powerdns.com http://mailman.powerdns.com/mailman/listinfo/pdns-users