<div dir="ltr">Hi!<div><br></div><div>Thanks for answering!.</div><div>I'm not pretending to be anonymous.</div><div>Mi name is Nicolas Baumgarten and I do infrastructure support .</div><div><br></div><div>I really appreciate your work. And hope to help.</div><div><br></div><div>Will try your suggestion with the version from repository.</div><div><br></div><div>Our results are those which I've send in the initial mail.</div><div><br></div><div>I'm trying to set up a baseline for maximum performance with cache,</div><div>and without any additional rules to be able to compare the impact of</div><div>future configuration changes.</div><div><br></div><div>One dnsdist process, whith 12 listeners, small cache, and all cached queries</div><div>can't get more than 120/140 kqps on our config.</div><div><br></div><div>Now we just tried to run 3 instances of dnsdist, with almost the same config and 6 listeners each, </div><div>and we obtained 360/380 kqps, that's a linear increment.</div><div><br></div><div>I'm happy to share my results, what else I can send you?</div><div> </div><div>Thanks!</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 3, 2017 at 5:00 PM, bert hubert <span dir="ltr"><<a href="mailto:bert.hubert@powerdns.com" target="_blank">bert.hubert@powerdns.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello "Nico Mail",<br>
<br>
Thank you for contacting us anonymously. My name is Bert Hubert and we work<br>
very hard to provide fast software for you, for free.<br>
<br>
Could you try this branch:<br>
<br>
git clone -b dnsdist-concur <a href="https://github.com/ahupowerdns/pdns.git" rel="noreferrer" target="_blank">https://github.com/<wbr>ahupowerdns/pdns.git</a><br>
cd pdns/pdns/dnsdistdist<br>
autoreconf -i<br>
./configure<br>
make -j4 -k dnsdist<br>
./dnsdist -C /your/dnsdist.conf<br>
<br>
Before you compile, try<br>
$ apt-get install g++ libboost-all-dev libtool make pkg-config libmysqlclient-dev libssl-dev liblua-dev<br>
<br>
Or the equivalent.<br>
<br>
Could you let us know what performance you measure?<br>
<br>
We've recently been optimizing the dnsdist cache for SMP use and timings,<br>
and we measure around 500kqps now.  Would love to know your results.<br>
<br>
Thanks.<br>
<span class="HOEnZb"><font color="#888888"><br>
        Bert<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On Mon, Apr 03, 2017 at 04:30:47PM -0300, Nico wrote:<br>
> Hi!<br>
> We found dnsdist very useful and interesting and using it in a couple of<br>
> configurations.<br>
> Now we are testing dnsdist to find the best tuning for our setup,<br>
> and we find the performance is not what we expected (based on what we saw<br>
> in presentations)<br>
><br>
> We can't get more than 120/150 kqps<br>
> We don't think it's network related, and doesn't seem to be interface or<br>
> udp stack.<br>
><br>
> If we test whith only<br>
><br>
> addAction(AllRule(),<wbr>DropAction())<br>
> We get ~600kqps<br>
><br>
> with some answer<br>
> addAction(AllRule(),<wbr>RCodeAction(dnsdist.REFUSED))<br>
> we get ~450kqps<br>
><br>
> but when we enable cache, and real queries/answers we get stuck at ~120kqps.<br>
> (numbers and test details below.)<br>
><br>
> The queries are a repeated sequence, so we have 100% cache hit.<br>
><br>
> Is this a real limit? or there is something else we can tune?<br>
><br>
> Thanks!<br>
><br>
> ------------------------------<wbr>----------------------<br>
> Our config:<br>
> dnsdist-1.1.0 from rpm (also compiled, no difference)<br>
> Centos 7 kernel 3.10.0<br>
> 32 cores  CPU E5-2660/ 32GB ram<br>
> 1gb card.<br>
><br>
> we use resperf and drool to test dns.<br>
> nuutcp and iperf3 to test network  (reporting 900mbs udp and 900Kpps udp<br>
> 150bytes pkts)<br>
> and netdata and graphite to see usage/errors/qps, etc.<br>
><br>
> The tests.<br>
> Always 12 listeners (addLocal)<br>
> ==============================<wbr>=================<br>
> addAction(AllRule(),<wbr>DropAction())<br>
> drool<br>
> sending ~ 900kqps<br>
> dnsdist web reports: ~650kqps<br>
> udp.inerrrors  small<br>
> ==============================<wbr>===================<br>
> addAction(AllRule(),<wbr>RCodeAction(dnsdist.REFUSED))<br>
> drool<br>
> sending ~460Kqps<br>
> dnsdist report ~450kqps<br>
> udp.inerrrors  ~0 whith sporadic high lost peak<br>
><br>
> multiple resperf:<br>
> Sending 650 Kqps<br>
> dnsdist reports ~400kqps<br>
> Udp.inerrors ~250 kpps<br>
><br>
> sending 300 kqps,  reports ~300kqps, lost responses: negligible<br>
> udp.inerrors ~0<br>
> Recv-Q ~0 Send-Q 0-5000<br>
> ==============================<wbr>==========================<br>
> Full config:<br>
> 12 addLocal, small cache, many backend servers (almost not used)<br>
><br>
> cache = newPacketCache(1000, 86400, 0, 60, 60)<br>
> getPool("dns-dist1"):setCache(<wbr>cache)<br>
> addPoolRule({"<a href="http://0.0.0.0/0" rel="noreferrer" target="_blank">0.0.0.0/0</a>"}, "dns-dist1")<br>
><br>
> setServerPolicy(<wbr>firstAvailable)<br>
><br>
> Seding more than 140kqps Recv-Q grows, and queries get lost.<br>
> DNSDIST web interface and graphite counters report between 120kqps and<br>
> 140kqps<br>
> never more.<br>
><br>
> Netstat output<br>
> Active Internet connections (servers and established)<br>
> Proto Recv-Q Send-Q Local Address           Foreign Address         State<br>
> udp   14006016   1536 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   16487424    768 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   16766208   3328 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   14918400   9472 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   16750848   2048 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   13962240    768 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   16637184      0 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   12026880   2048 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   15539712    768 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   16772352      0 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   10476288    768 dns-dist1-e:domain    0.0.0.0:*<br>
> udp   15005184      0 dns-dist1-e:domain    0.0.0.0:*<br>
<br>
</div></div><div class="HOEnZb"><div class="h5">> ______________________________<wbr>_________________<br>
> dnsdist mailing list<br>
> <a href="mailto:dnsdist@mailman.powerdns.com">dnsdist@mailman.powerdns.com</a><br>
> <a href="https://mailman.powerdns.com/mailman/listinfo/dnsdist" rel="noreferrer" target="_blank">https://mailman.powerdns.com/<wbr>mailman/listinfo/dnsdist</a><br>
<br>
</div></div></blockquote></div><br></div>