It hunts down the fastest DNS servers available for your computer to use.

Googleは3日(米国時間)、DNSサービス「Google Public DNS」を開始した。Google Public DNSはWebを高速化するというGoogleの取り組みの一つで、安定して高速なレスポンスを実現するDNSサービスを提供することでブラウザやWebサービスの動作を高速化しようというもの。DNSとして「8.8.8.8」または「8.8.4.4」を設定すればよいとされている。

Google Public DNSの反応速度を調査すると、ほかのDNSサービスと比較してレスポンス時間が一定しておりぶれが少ないことがわかる。最速の動作を提供するわけではないが、ぶれが少なく平均して速い。DNSは通常、ISPから提示されたIPを指定して使うか、理由があれば専用に提供されているDNSサービスを利用するケースもある。どのDNSサービスを使うことが体感として高速になるかは、一回あたりのレスポンスの速さを計測しても意味がなく、実施の用途においてどういった違いが表れるかを調査して検討する必要がある。

Google Public DNSが公開されてから数日後、Google Codeにnamebenchと呼ばれるプロジェクトが登場した。Googleでシステム管理者を務めるThomas Stromberg氏が開発したもので、ブラウザの利用履歴などを活用して実際の用途に近いDNSの利用を計測し、高速なものを報告する。もともとBGPルートセレクションがGoogle Public DNSに性能に与える影響を計測する目的で開発されたスクリプトで、20%プロジェクト経てUnix、Windows、Mac OS Xで動作するアプリケーションとしてまとめられたもの。Apache License 2.0のもとで公開されている。実行にはPythonが必要。

namebench 1.0.5実行開始 / FreeBSD 9-CURRENT

namebench 1.0.5実行完了、結果が報告されている / FreeBSD 9-CURRENT

出力される報告書。設定しているDNSサーバよりもGoogle Public DNSの方が62%高速に動作するという内容

平均および最速レスポンス間隔棒グラフ

レスポンス分布折れ線グラフ

Windows XPでのnamebench 1.0.5実行例

Unix系プラットフォームであれば、配布物に含まれているnamebench.pyスクリプトを実行すればよい。Windows版とMac OS X版はバイナリが提供されている。実行時間は10分程度。ターミナルに結果が出力されるほか、結果をまとめたHTMLとCSVも出力される。グラフの描画にはGoogle Chart APIが使われている。何度か実行して常に上位にあらわれるサーバはDNSサービスとして高速性が期待できるものとなる。

PCやOSでそれぞれDNSを指定してもよいが、LANからネットワークに接続しているのであれば、ルータのDNS参照先をnamebenchの結果を加味したものにすると効果がでやすい。ルータをDNSサーバとして設定しているクライアントを変更する必要がなく、全体として高速化が期待できる。またPCで直接設定するのと比べて、ローカルにおけるキャッシュが期待できるという利点がある。

なお、namebenchを実行するとLANにおける名前解決が高負荷になるケースがある。実施する場合はそのあたりを注意しておく必要がある。