<html><head></head><body><div>There is apparently no issue with the performance or query drops. I am just concerned that we are increasing the load on these machines and we might run into some problems with increased load/traffic. Currently we are getting about 5K QPS and we are expecting about 20K QPS per server.</div><div><br></div><div>The CPU spikes/dips are shown in the webconsole of dnsdist. Following are two snapshots of the servers we are using. First one is showing this behaviour.</div><div><br></div><div><a href="https://drive.google.com/file/d/1OfWUiP5G2ZKpXLOPYfMSz4NZXiUi6ZNA/view?usp=sharing">https://drive.google.com/file/d/1OfWUiP5G2ZKpXLOPYfMSz4NZXiUi6ZNA/view?usp=sharing</a></div><div><br></div><div><a href="https://drive.google.com/file/d/1c6QiBqnJLuW3os5HeQSlMJw_VVrQC0SZ/view?usp=sharing">https://drive.google.com/file/d/1c6QiBqnJLuW3os5HeQSlMJw_VVrQC0SZ/view?usp=sharing</a></div><div><br></div><div><br></div><div>Thankyou for your tuning tips. Have applied the configuration changes and restarted the application. Now the CPU usage is smooth.</div><div><br></div><div>Regards</div><div><br></div><div>Jahanzeb</div><div><br></div><div><br></div><div>On Thu, 2020-12-24 at 12:04 +0100, Remi Gacogne via dnsdist wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>On 12/24/20 10:28 AM, Jahanzeb Arshad via dnsdist wrote:<br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Following is the configuration file. The strace output is attached here<br></div><div><br></div><div><a href="https://drive.google.com/file/d/1lRBNr6PB83zdbfMVtSKbzZ5ZKipy140f/view?usp=sharing">https://drive.google.com/file/d/1lRBNr6PB83zdbfMVtSKbzZ5ZKipy140f/view?usp=sharing</a> <br></div><div><<a href="https://drive.google.com/file/d/1lRBNr6PB83zdbfMVtSKbzZ5ZKipy140f/view?usp=sharing">https://drive.google.com/file/d/1lRBNr6PB83zdbfMVtSKbzZ5ZKipy140f/view?usp=sharing</a>><br></div></blockquote><div><br></div><div>Thanks! I don't see anything unusual in that trace, unfortunately. Was <br></div><div>it taken during the time where the CPU usage was unusually high? How is <br></div><div>that CPU usage measured? Do you observe any issue during that time, like <br></div><div>some queries being dropped or the latency increasing?<br></div><div><br></div><div>Looking at the metrics you are sending to our public metronome <br></div><div>(<a href="https://metronome1.powerdns.com/?server=dnsdist.NTL-DNSLB-GD-01.main&beginTime=-604800">https://metronome1.powerdns.com/?server=dnsdist.NTL-DNSLB-GD-01.main&beginTime=-604800</a>), <br></div><div>I don't see anything unusual and the CPU usage seems quite stable.<br></div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>-- Enable DNS query caching<br></div><div>-- 300K entries with avg 512B would take about 150MB of RAM<br></div><div>pc = newPacketCache(300000, {maxTTL=86400, minTTL=0, <br></div><div>temporaryFailureTTL=60, staleTTL=60, dontAge=false})<br></div><div>getPool(""):setCache(pc)<br></div></blockquote><div><br></div><div>Just a tuning advice, you seem to have several threads so it would be a <br></div><div>good idea to use more than one shard in the packet cache to reduce <br></div><div>contention between threads. You can do that by passing numberOfShards=10 <br></div><div>(for example) to the new newPacketCache() command, see <br></div><div><a href="https://dnsdist.org/reference/config.html#newPacketCache">https://dnsdist.org/reference/config.html#newPacketCache</a><br></div><div><br></div><div>It might also be a good idea to use more than one shard in the ring <br></div><div>buffers, by passing 10 (for example) as a second parameter to the <br></div><div>setRingBuffersSize() command:<br></div><div><br></div><div><a href="https://dnsdist.org/reference/config.html#setRingBuffersSize">https://dnsdist.org/reference/config.html#setRingBuffersSize</a><br></div><div><br></div><div>You are using the default size so setRingBuffersSize(10000, 10) would <br></div><div>only change the number of shards, and will likely improve performance a bit.<br></div><div><br></div><div>Best regards,<br></div><div><br></div><div>Remi<br></div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>On Thu, 2020-12-24 at 09:56 +0100, Remi Gacogne via dnsdist wrote:<br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>Hi,<br></div><div><br></div><div>On 12/24/20 7:25 AM, Jahanzeb Arshad via dnsdist wrote:<br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div>We have deployed two instances of dnsdist v1.5.1 on CentOS 7.9. After<br></div><div>running for 7-8 days both the machines start showing erratic CPU usage<br></div><div>pattern. The CPU usage jumps to 40% then 0 and the servers keep on doing<br></div><div>this. If the process is restarted this is fixed. Need some help to<br></div><div>identify and fix this issue.<br></div></blockquote><div><br></div><div>Would you mind posting the dnsdist configuration you are using, after<br></div><div>redacting passwords and API keys, of course?<br></div><div><br></div><div>It would also be very helpful if you could do a "strace -f -p <pid of<br></div><div>dnsdist>" for a few seconds after the process has started acting out.<br></div><div>Getting a backtrace might also help, which can be done by attaching a<br></div><div>debugger via "gdb -p <pid of dnsdist>" then issuing "thread apply all bt<br></div><div>full".<br></div><div><br></div><div>Best regards,<br></div></blockquote><div><br></div><div>_______________________________________________<br></div><div>dnsdist mailing list<br></div><div><a href="mailto:dnsdist@mailman.powerdns.com">dnsdist@mailman.powerdns.com</a><br></div><div><a href="https://mailman.powerdns.com/mailman/listinfo/dnsdist">https://mailman.powerdns.com/mailman/listinfo/dnsdist</a><br></div><div><br></div></blockquote><div><br></div><div><br></div></blockquote></body></html>