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 とか出る。とても大きな値。つまりそれだけハイパフォーマンスということ。しかしふつうどの程度の値なら良いものなのかはよくわからない。