Giter Site home page Giter Site logo

rpounder's Introduction

Rpounder: stress testing for DNS resolvers

Rpounder is essentially apache bench for DNS resolvers. To get help, just run rpounder --help

# rpounder --help
Usage of bin/rpounder:
  -c int
		Concurrent processes (default 10)
  -n string
		Hostname(s) to look up. Separate multiple hostnames with spaces or commas (default "localhost")
  -p int
		Number of passes (default 100)
  -r string
		resolver(s) ip/port. Separate multiple resolvers with spaces or commas (default "localhost:53")

Rpounder will run repeated host look-ups against the specified host(s) and return precentile rankings for request times and other summary information. Here we're running 5 concurrent processes sending a total of 1000 requests to the resolver at 192.168.0.1 (default port 53) to resolve "foo.example.com":

# rpounder -p 1000 -c 5 -r "192.168.0.1" -n "foo.example.com"

2017/05/15 16:00:39 rpounder resolver benchmark 1.0.0 starting
2017/05/15 16:00:44 Percentage of the requests served within a certain time:
2017/05/15 16:00:44 50%  => 12.574632ms
2017/05/15 16:00:44 66%  => 14.003579ms
2017/05/15 16:00:44 75%  => 14.529408ms
2017/05/15 16:00:44 80%  => 15.128422ms
2017/05/15 16:00:44 90%  => 16.5929ms
2017/05/15 16:00:44 95%  => 19.918966ms
2017/05/15 16:00:44 99%  => 32.612096ms
2017/05/15 16:00:44 Fastest: 9.008518ms  -- Slowest: 2.003962086s
2017/05/15 16:00:44 Total passes: 1000. Total errors: 4

Multiple resolvers or hosts can be separated by spaces and/or commas. Specify an alternate port by appending a colon and a port number to the resolver spec.

Installation

You can grab the latest release from the release page, unarchive, and merely copy the correct binary somewhere on your path. There are no dependencies.

Alternatively, if you already have go installed you can run:

go get github.com/mowings/rpounder/src/rpounder

per usual, which will build and drop the binaries in your go bin directory.

Building it

You'll need go 1.7 or better. I use gb to build, in which case you can simply change to the project directory and run gb build.

If you prefer to use just go, change to the project directory and run

export GOPATH=$GOPATH:`pwd`:`pwd`/vendor

Once you've done that, you can use go build in the usual way to build the executable.

For both build methods, set your desired os and architecture via environment variables GOOS and GOARCH to build for your desired platform. The release provides binaries for OSX, Linux and Windows, but you can build for any supported Go platform/architecture.

rpounder's People

Contributors

mowings avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.