igrigorik / autoperf
- Source
- Commits
- Network (7)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
a51331b
commit a51331be4c64bd46e726907d6d51d0e7be5273cc
tree 9752754b16d6601b41f4a6c7da4777483a3c9636
parent d9167dddd5153454a49861861f77d09548414f00
tree 9752754b16d6601b41f4a6c7da4777483a3c9636
parent d9167dddd5153454a49861861f77d09548414f00
autoperf /
| name | age | message | |
|---|---|---|---|
| |
README | ||
| |
autoperf.rb | ||
| |
sample.conf |
README
Autoperf is a ruby driver for httperf, designed to help you automate load and performance testing of any web application - for a single end point, or through log replay. More: http://www.igvita.com/2008/09/30/load-testing-with-log-replayload-testing-with-log-replay/ To get started, first download & install httperf: http://www.hpl.hp.com/research/linux/httperf/ Next, either run a simple test straight from the command line (man httperf), or create an execution plan for autoperf. If you want to replay an access log from your production environment, follow these steps: # grab last 10000 lines from nginx log, and extract a certain pattern (if needed) tail -n 10000 nginx.log | grep "__pattern__" > requests # extract the request path (ex. /homepage) from the log file awk '{print $7}' requests > requests_path # replace newlines with null terminators (httperf format) tr "\n" "\0" < requests_path > replay_log Next, configure your execution plan (see sample.conf), and run autoperf: ruby autoperf.rb -c sample.conf Sample output: +----------------------------------------------------------------+ | rate | conn/s | req/s | replies/s avg | errors | net io (KB/s) | +----------------------------------------------------------------+ | 100 | 99.9 | 99.9 | 99.7 | 0 | 45.4 | | 120 | 119.7 | 119.7 | 120.0 | 0 | 54.4 | | 140 | 139.3 | 139.3 | 138.0 | 0 | 63.6 | |> 160 | 151.9 | 151.9 | 147.0 | 0 | 69.3 | | 180 | 132.2 | 129.8 | 137.4 | 27 | 59.6 | | 200 | 119.8 | 117.6 | 139.9 | 31 | 53.9 | +----------------------------------------------------------------+

