@kyanny's blog

私は天才ではありません。ただ、人より長く一つの事と付き合っていただけです - アインシュタイン

DNS サーバのパフォーマンスを計測する queryperf

bind の tarballの contrib/queryperf ディレクトリに入っている。

$ ./configure
$ make
$ ./queryperf -d input/sample.1 -d XXX.XXX.XXX.XXX -l 10

XXX.XXX.XXX.XXX がパフォーマンスを計測したい DNS サーバの IP アドレス。ものすごい勢いで問い合わせるので自分が管理してない外部の DNS サーバへいたずらにリクエストを送らないこと。

-d オプションはサンプルデータのファイルを指定する。サンプルデータは queryperf ディレクトリの下の input ディレクトリ内にサンプルが用意してある。同じく queryperf ディレクトリの下の utils のなかに gen-data-queryperf.py というスクリプトがありダミーのデータを作ってくれる。データの量を増やしたいときは直接編集して num の値を大きくする(デフォルトは 4 = 4行)。 maxsize をでかくすると www.hopaigejwaigehawpgheapgehawighaeiwgjsadkjipveahwgi9ajwgauwhgeanwgeaheiapwugahgawaw.com A みたいなダミーデータができる。

-l オプションは何秒間計測するか。 -l 3600 で一時間。そんなに長時間送ると大変待たされる上に負荷も高くなるので10秒とかで十分だと思う。

結果は Query per second の行を見ればいい。 1900 qps とか 17000 qps とか出る。とても大きな値。つまりそれだけハイパフォーマンスということ。しかしふつうどの程度の値なら良いものなのかはよくわからない。