<div dir="ltr"><div><div><div>Thanks to Winfried and others for the response!<br><br></div>It was indeed the pdns-distributes-queries config that did the trick. My query file was only 1 query, so all the queries were sent to one thread. I tried it with a query file with 500 queries, the load was distributed to all 12 threads evenly. <br><br>The latency of version 4.0.3 is much smaller than that of version 3.6.0. <br><br></div>Thanks again, <br></div>Grace<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 21, 2016 at 1:28 AM, abang <span dir="ltr"><<a href="mailto:abang@t-ipnet.net" target="_blank">abang@t-ipnet.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="im HOEnZb">Hi Grace,<br>
<br>
Since 3.7.0, Recursor distributes queries to the threads itself. See<br>
<a href="https://doc.powerdns.com/md/recursor/settings/#pdns-distributes-queries" rel="noreferrer" target="_blank">https://doc.powerdns.com/md/re<wbr>cursor/settings/#pdns-distribu<wbr>tes-queries</a><br>
<br>
Additional it hashes the queries with the goal to send the same query to the same thread. This improves the cache hit rate and thus the average latency and the overall performance.<br>
<br>
I guess your query generator sends only 2 different queries (or more queries which lead to only 2 different hash results).<br>
<br>
Winfried<br>
<br></span><div class="HOEnZb"><div class="h5">
Am 21.10.2016 um 09:45 schrieb Øystein Viggen:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Grace Wang <<a href="mailto:xiaohong.grace.wang@gmail.com" target="_blank">xiaohong.grace.wang@gmail.com</a><wbr>> writes:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I installed pdns-recursor 4.0.3 on a CentOS 6.5 box, that has 20 physical<br>
cores and 128G RAM. When I set the threads in /etc/pdns-recursor/<br>
recursor.conf to be 4 or 12, then issued tons of queries (one query sent<br>
multiple times using multiple dnsperf instances simultaneously) at it, I<br>
noticed only 2 of the threads were working actively, each using almost 100%<br>
CPU and ~90% CPU, respectively. The other threads were using 0% CPU.<br>
</blockquote></blockquote>
Could it be that pdns-recursor isn't optimized very well for serving the<br>
same same query at a very high rate?<br>
<br>
With about 2000 queries/second of real-world DNS traffic from servers<br>
and users, I'm seeing a good spread of the load over 24 threads on<br>
pdns-recursor 4.0.3.  (Ubuntu 16.04, if that matters).<br>
<br>
Øystein<br>
______________________________<wbr>_________________<br>
Pdns-users mailing list<br>
<a href="mailto:Pdns-users@mailman.powerdns.com" target="_blank">Pdns-users@mailman.powerdns.co<wbr>m</a><br>
<a href="https://mailman.powerdns.com/mailman/listinfo/pdns-users" rel="noreferrer" target="_blank">https://mailman.powerdns.com/m<wbr>ailman/listinfo/pdns-users</a><br>
</blockquote>
<br>
<br>
______________________________<wbr>_________________<br>
Pdns-users mailing list<br>
<a href="mailto:Pdns-users@mailman.powerdns.com" target="_blank">Pdns-users@mailman.powerdns.co<wbr>m</a><br>
<a href="https://mailman.powerdns.com/mailman/listinfo/pdns-users" rel="noreferrer" target="_blank">https://mailman.powerdns.com/m<wbr>ailman/listinfo/pdns-users</a><br>
</div></div></blockquote></div><br></div>