DNS Server Benchmarking
Author: Samuel Williams When: Friday, 04 September 2009April 2009
May 2009
August 2009
September 2009
October 2009
- Building a Concrete Bath
- LED Lighting Comparison
- Thinking about Programming Languages
- How To Be A Consultant
- Lucid Programming Dojo
- Exim4 + ClamAV + SpamAssassin
- Secure login using AJAX
- Ramaze And Rack
- ActiveMerchant
- Concurrency And Immutability
- Floating Point Numbers
- Programming And Debugging
- Useful jQuery Plugins
- Loading Anonymous Ruby Classes
- 尺八 (Shakuhachi)
- Card Trick
- Object Oriented C
- Gemcutter
- Writing Clearly
- Richard Stallman In Christchurch
- Magnatune
- Client Side Graphing
- Zena CMS
November 2009
February 2010
March 2010
April 2010
May 2010
June 2010
July 2010
August 2010
September 2010
December 2010
January 2011
March 2011
May 2011
August 2011
September 2011
I was testing RubyDNS and found that it was a bit unreliable after a few minutes. This was actually due to a bug in the net-mdns resolver. Basically, if you want DNS resolving to work, don't use net-mdns gem. The standard resolver, works fine though (apparently it used to be broken, which is why I used the net-mdns implementation in the first place).
Anyway, during testing I made a script for testing DNS resolution, and it is bundled as part of RubyDNS:
$ rd-resolve-test 10.0.0.80 Starting test with 14 domains... Using nameservers: 10.0.0.80 Only long running queries will be printed... Starting threads... 0.54s: www.youtube.com => 66.102.7.101 0.60s: www.facebook.com => 69.63.184.150 0.65s: www.youtube.com => 66.102.7.101 0.64s: www.twitter.com => 168.143.161.20 0.52s: www.rubygems.org => 207.114.85.50 0.83s: www.facebook.com => 69.63.184.150 0.86s: www.google.com => 66.102.7.99 0.89s: www.oriontransfer.co.nz => 120.138.18.82 0.82s: www.microsoft.com => 65.55.21.250 0.55s: www.twitter.com => 168.143.161.20 0.50s: www.lucidsystems.org => 123.255.41.127 0.59s: www.amazon.com => 72.21.207.65 0.57s: www.apple.com => 17.149.160.10 0.52s: www.oriontransfer.co.nz => 120.138.18.82 Requests: 200 Average time: 0.32242531
rd-resolve-test is a simple executable which starts a number of threads. Each thread resolves a number of names against given DNS servers. This allows you to test both performance and success of a DNS server under load.
You can specify a file that contains a list of domains to use for testing, e.g.:
# domains.txt www.google.com www.slashdot.org $ rd-resolve-test -d domains.txt 10.0.0.80 Starting test with 2 domains... # ... and so on
You can customize the number of threads and names resolved per thread. Use -h super powers for more information!
Comments
Please note, you can leave a comment that uses (limited) XHTML and Textile syntax.