<div dir="ltr">2014-12-22 17:30 GMT-03:00 bert hubert <<a href="mailto:bert.hubert@netherlabs.nl">bert.hubert@netherlabs.nl</a>>:<br>> On Mon, Dec 22, 2014 at 02:39:49PM +0100, Morten Stevens wrote:<br>>> Here is my result compared with bind and unbound:<br>>> 1) pdns-recursor 3.6.2: 169k QPS<br>>> 2) unbound 1.5.1: 327k QPS<br>>> 3) bind 9.9.4-P2: 251k QPS<br>><br>> Well - let me describe how we like to do our benchmarking.<br>><br>> 1) Use tcpdump to record actual traffic that is representative of your users<br>> 2) Use dnsreplay with the --speedup flag to see how much 'headroom' you have<br>> on your platform<br>> 3) Study the graphs like <a href="http://xs.powerdns.com/metronome/">http://xs.powerdns.com/metronome/</a> to see if<br>> response times & CPU loads are where you want them<br>><br>> The issue is that fully cached performance is great, but this is like how<br>> fast a car drives on a sunny day on a straight road - perhaps 250kph.<br>><br>> In real life, what we want to know is how the car handles in actual traffic,<br>> on rough roads, through corners etc.<br>><br>> The real work in DNS is for uncached queries, for difficult queries, for<br>> hammering clients, for domains with timeouts.<br>><br>> Of course, every once in a while, we too suffer from a benchmark-driven<br>> optimization round. And then we might suddenly care a lot about 100% cached<br>> queries too ;-)<br>><br>> But for now, winning the battle for "rock solid service under elevated real<br>> loads" is our goal.<br>><br>>> I am surprised that bind9 is much faster than pdns-recursor in my test...<br>><br>> Fwiw, at a recent (few weeks ago) huge nordic deployment, bind9 was replaced<br>> by pdns-recursor because bind9 could not take the (real life) load.<br>><br>> Further to what Robert noted down the thread, actual benchmarking at<br>> 200kqps+ is hard work on the benchmarking tools as well. In some of the more<br>> realistic tests, multiple client systems have been used to get actual<br>> numbers.<br>><br>> dnsreplay (described lightly on <a href="https://doc.powerdns.com/md/tools/analysis/">https://doc.powerdns.com/md/tools/analysis/</a><br>> ) sometimes also does not achieve the query rates you want on a single<br>> system.<br>><br>>         Bert<br>><br>> _______________________________________________<br>> Pdns-users mailing list<br>> <a href="mailto:Pdns-users@mailman.powerdns.com">Pdns-users@mailman.powerdns.com</a><br>> <a href="http://mailman.powerdns.com/mailman/listinfo/pdns-users">http://mailman.powerdns.com/mailman/listinfo/pdns-users</a><br><br>Thanks a lot for the insight. What should we be looking for on the dnsreplay output?. I run it on a cold-cache-recursor and got this numbers:<br><br><font face="monospace">         Questions - Pend. - Drop = Answers = (On time + Late) = (Err + Ok)<br>Orig     5894888     0       217808 11527843   0         320346   0     0<br>Refer.   5894888     0       390969 5491046    0         409381   0     0<br>0 queries that could still come in on time, 6728 outstanding<br>we late: 409381, orig late: 320346, 5894888 questions sent, 11527843 original answers, 1749152 perfect, 3281086 mostly correct, 58024 we better, 8279 ori better (0 diff)<br>we never: 390969, orig never: 217808<br>original questions from IP addresses for which recursion was not available: 102115<br>Unmatched from us: 87234, unmatched from original: 1492121 ( - decoding err: 1491725)<br>DNS decoding errors from us: 0, from original: 396, exact duplicates from client: 155773</font><div><font face="monospace"><br></font><br>I'm currently running it with 2x speed, but is not really clear how good or bad the new recursor is. For example I see all the answers listed in the "Late" columns which sounds bad, and the "unmatched from original" is a lot higher than "unmatched from us" plus, the "we better" is higher than "orig better", which both sound good<div><br><br><font face="monospace">         Questions - Pend. - Drop = Answers = (On time + Late) = (Err + Ok)<br>Orig     3226515     1497    134997 6281328    0         231733   0     0<br>Refer.   3226515     8249    1424352 1684913   0         1477002  0     0<br>8249 queries that could still come in on time, 57265 outstanding<br>we late: 1477002, orig late: 231733, 3226515 questions sent, 6281328 original answers, 510530 perfect, 980609 mostly correct, 22153 we better, 3400 orig better (0 diff)<br>we never: 1424352, orig never: 134997<br>original questions from IP addresses for which recursion was not available: 61821<br>Unmatched from us: 49229, unmatched from original: 451438 ( - decoding err: 451231)<br>DNS decoding errors from us: 0, from original: 207, exact duplicates from client: 128090</font><br><br>Comments?<br><br>Regards,<br>-- <br>Ciro Iriarte<br><a href="http://iriarte.it">http://iriarte.it</a><br>--</div></div></div>