Mutilate with scons patch
.gitignore | ||
AdaptiveSampler.h | ||
AgentStats.h | ||
barrier.cc | ||
barrier.h | ||
cmdline.ggo | ||
Connection.cc | ||
Connection.h | ||
ConnectionOptions.h | ||
ConnectionStats.h | ||
COPYING | ||
distributions.cc | ||
distributions.h | ||
Generator.cc | ||
Generator.h | ||
HistogramSampler.h | ||
log.cc | ||
log.h | ||
mutilate.cc | ||
mutilate.h | ||
Operation.h | ||
README.md | ||
SConstruct | ||
TestGenerator.cc | ||
util.cc | ||
util.h |
Mutilate
Mutilate is a memcached load generator designed for high request rates, good tail-latency measurements, and realistic request stream generation.
Requirements
- A C++0x compiler
- scons
- libevent
- gengetopt
- 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