Mike Schilli's Friendly Neighborhood Perl Shop

Home
USArundbrief.com
Resume
CPAN Modules
Articles in English
Articles in German
Mike's Script Archive
English-Japanese Translation Trainer
Adventures with O'Reilly's Safari
10 Easy Steps to Become a California Driver
Unofficial perlmonks.com IRC Channel
My Collection of Outage Pages
Prisma (Computer Club Deutschland)
Mike's Monologues
Mike's Script Archive: pounder

pounder - load test a http server


NAME

    pounder - load test a http server


DOWNLOAD

pounder


SYNOPSIS

    pounder [-c parallel_clients] [-n total_reqs] 
            [-p post_file] [-t timeout] url


OPTIONS

-h
Prints this manual page in text format.

-v
Prints the release version of pounder.

-c parallel_clients
Specifies the simulated number of clients.

-m match_pattern
Regular expression to apply on retrieved pages. Defaults to
    -m .

which will match any non-empty pages. If pages don't match the regular expression, the result will show NO_MATCH errors.

-n total_requests
The total number of requests issued.

-t timeout
Number of seconds until requests are timing out.

-p postfile
If the request is a POST request instead of the default GET, this option specifies a file containing Perl code like
    [ city   => 'San Francisco,
      street => 'Church St.'
    ]

that if evaluated will return a reference to an array containg the key/value pairs as elements.


DESCRIPTION

pounder simulates several clients pounding on a web site for load testing purposes. It takes the total number of requests and the number of simulated clients as parameters, then fires up all requests and tracks the results. When done, it will print out a summary like

      URL:             http://somehostxyz.com
      Total Requests:  100
      Parallel Clients 5
      Succeeded:       100 (100.00%)
      Errors:          NONE
      Total Time:      12.27 secs
      Throughput:      81.503 Requests/sec
      Latency:         0.1219 secs/Request

Throughput is the number of requests per second, obtained by deviding the number of total requests by the total number of second the test ran.

Latency is the average delay between sending a request and receiving a response. These delays are timed individually and then averaged at the end. If you have more than one client running, latency is often not equal to the reciproc of throughput.


EXAMPLES

      # 100 Requests with 5 parallel clients
  $ pounder -n 100 -c 5 http://somehostxyz.com
      URL:             http://somehostxyz.com
      Total Requests:  100
      Parallel Clients 5
      Succeeded:       100 (100.00%)
      Errors:          NONE
      Total Time:      12.27 secs
      Throughput:      81.503 Requests/sec
      Latency:         0.1219 secs/Request
      # 100 Requests with 5 parallel clients, post request
  $ cat post.dat
    [ city   => 'San Francisco,
      street => 'Church St.'
    ]
  $ pounder -n 100 -c 5 -p post.dat http://somehostxyz.com
      # Request page 100 times and check if it contains 'New York'
  $ pounder -n 100 -m 'New York' http://somehostxyz.com


LEGALESE

Copyright 2003 by Mike Schilli, all rights reserved. This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.


AUTHOR

2003, Mike Schilli <m@perlmeister.com>


Latest update: 20-Oct-2013