Mutilate with scons patch
Go to file
2012-12-26 17:08:00 -07:00
.gitignore Initial check-in. 2012-08-23 14:30:32 -07:00
AdaptiveSampler.h Initial check-in. 2012-08-23 14:30:32 -07:00
AgentStats.h Initial check-in. 2012-08-23 14:30:32 -07:00
barrier.cc Initial check-in. 2012-08-23 14:30:32 -07:00
barrier.h Initial check-in. 2012-08-23 14:30:32 -07:00
cmdline.ggo Added location parameter to GPareto distribution. Validated value-size distribution against Atikoglu's paper by comparing CDF and PDF. 2012-08-24 14:02:57 -07:00
Connection.cc Initial check-in. 2012-08-23 14:30:32 -07:00
Connection.h Initial check-in. 2012-08-23 14:30:32 -07:00
ConnectionOptions.h Initial check-in. 2012-08-23 14:30:32 -07:00
ConnectionStats.h Implement a log-based histogram sampler to increase fidelity for small samples and maximum range for large samples. 2012-12-26 17:08:00 -07:00
COPYING Initial check-in. 2012-08-23 14:30:32 -07:00
distributions.cc Initial check-in. 2012-08-23 14:30:32 -07:00
distributions.h Initial check-in. 2012-08-23 14:30:32 -07:00
Generator.cc Added location parameter to GPareto distribution. Validated value-size distribution against Atikoglu's paper by comparing CDF and PDF. 2012-08-24 14:02:57 -07:00
Generator.h Added location parameter to GPareto distribution. Validated value-size distribution against Atikoglu's paper by comparing CDF and PDF. 2012-08-24 14:02:57 -07:00
HistogramSampler.h Initial check-in. 2012-08-23 14:30:32 -07:00
log.cc Initial check-in. 2012-08-23 14:30:32 -07:00
log.h Initial check-in. 2012-08-23 14:30:32 -07:00
LogHistogramSampler.h Implement a log-based histogram sampler to increase fidelity for small samples and maximum range for large samples. 2012-12-26 17:08:00 -07:00
mutilate.cc Initial check-in. 2012-08-23 14:30:32 -07:00
mutilate.h Initial check-in. 2012-08-23 14:30:32 -07:00
Operation.h Initial check-in. 2012-08-23 14:30:32 -07:00
README.md Minor compatibility note. 2012-08-23 14:54:09 -07:00
SConstruct Initial check-in. 2012-08-23 14:30:32 -07:00
TestGenerator.cc Added location parameter to GPareto distribution. Validated value-size distribution against Atikoglu's paper by comparing CDF and PDF. 2012-08-24 14:02:57 -07:00
util.cc Initial check-in. 2012-08-23 14:30:32 -07:00
util.h Initial check-in. 2012-08-23 14:30:32 -07:00

Mutilate

Mutilate is a memcached load generator designed for high request rates, good tail-latency measurements, and realistic request stream generation.

Requirements

  1. A C++0x compiler
  2. scons
  3. libevent
  4. gengetopt
  5. zeromq (optional)

Mutilate has only been thoroughly tested on Ubuntu 11.10. We'll flesh out compatibility over time.

Building

apt-get install scons libevent-dev gengetopt libzmq-dev
scons

Usage

Type './mutilate -h' for a full list of command-line options. At minimum, a server must be specified.

$ ./mutilate -s localhost
#type       avg     min     1st     5th    10th    90th    95th    99th
read       52.4    41.0    43.1    45.2    48.1    55.8    56.6    71.5
update      0.0     0.0     0.0     0.0     0.0     0.0     0.0     0.0
op_q        1.5     1.0     1.0     1.1     1.1     1.9     2.0     2.0

Total QPS = 18416.6 (92083 / 5.0s)

Misses = 0 (0.0%)

RX   22744501 bytes :    4.3 MB/s
TX    3315024 bytes :    0.6 MB/s

Mutilate reports the latency (average, minimum, and various percentiles) for get and set commands, as well as achieved QPS and network goodput.

To achieve high request rate, you must configure mutilate to use multiple threads, multiple connections, connection pipelining, or remote agents.

$ ./mutilate -s zephyr2-10g -T 24 -c 8
#type       avg     min     1st     5th    10th    90th    95th    99th
read      598.8    86.0   437.2   466.6   482.6   977.0  1075.8  1170.6
update      0.0     0.0     0.0     0.0     0.0     0.0     0.0     0.0
op_q        1.5     1.0     1.0     1.1     1.1     1.9     1.9     2.0

Total QPS = 318710.8 (1593559 / 5.0s)

Misses = 0 (0.0%)

RX  393609073 bytes :   75.1 MB/s
TX   57374136 bytes :   10.9 MB/s