Mutilate with scons patch
Go to file
2012-08-23 14:54:09 -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 Initial check-in. 2012-08-23 14:30:32 -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 Initial check-in. 2012-08-23 14:30:32 -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 Initial check-in. 2012-08-23 14:30:32 -07:00
Generator.h Initial check-in. 2012-08-23 14:30:32 -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
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 Initial check-in. 2012-08-23 14:30:32 -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