pdnsを適当にチューニング
pdnsのチューニングは以下のページが参考になる。
https://doc.powerdns.com/md/authoritative/performance/
細かくやればきりがないと思うけど、receiver-threadsが一番効果がでそうなので、そこからやってみる。
チューニングのきっかけとしては、バックエンドのmysqlへのレイテンシーが非常に大きい環境があり、
その環境にあるDNSサーバがパンクしかけていたことだった。
レイテンシーが大きい場合は並列数を増やすことが効果的だと思ったのだ。
まずは設定値を変えてみる。デフォルトはreceiver-threads=1となっている。
$ sudo diff pdns.conf pdns.conf.20160908 251d250 < receiver-threads=3
以下のシェルスクリプトを使って検証を実施。
gist.github.com
receiver-threadsを上げてテストすると12ぐらいで最良の結果が得られた。
検証の方法が正しいかは保証できないが、適当にチューニングするぐらいならこれでよいのではないかと思う。
上記の公式ページだとreceiver-threadsは3,4ぐらいが適切と書いてあるが、
DBに対する通信のレイテンシーが大きい環境ではそうではないようだ(当たり前か)
2016-01-30 更新
`dnsperf`が大変便利なのでこんなシェル要らないことに気づいた。