There are a few Memcached load generators out there that by definition are now load generators for Membase as well. Everyone has their preference, and no one tool is right for all environments or skillsets. We at Couchbase, Inc. use a variety of tools for testing various functions of the server. Some of our favorites are:
- Brutis - A flexible PHP script that is easy to get and use, and can help simulate an entire stack. This gives you results and metrics that will be similar to what your application (assuming it's PHP) will be experiencing.
- Memcachetest - memcachetest can be configured to exercise a Membase server in many different ways. It is currently the only tool that supports the native Membase protocol (vbucket-aware).
- Memslap - Provided as part of the open-source memcached project, this has been a long-standing testing tool
- mc-loader - Another tool written for bulk-loading of data
Using Brutis
Get it: http://code.google.com/p/brutis/
Install it: As a PHP script, the installation for brutis is very simple:
[user@Membase1 ~]$ tar xzvf brutis-v0_93.tgz brutis-v0_93/ brutis-v0_93/readme brutis-v0_93/brutis brutis-v0_93/license brutis-v0_93/lib/ brutis-v0_93/lib/collector brutis-v0_93/lib/functions.php brutis-v0_93/lib/task_manager.php brutis-v0_93/lib/client [user@Membase1 ~]$
You'll also need to install PHP and its memcached library. The simplest way to do this is using yum or aptitude:
yum install php-pecl-memcached
or
apt-get install php-pecl-memcached
Run it: Brutis has a variety of options that can be used to tune the type of traffic that it generates. The simplest way is to let it use all its defaults:
[user@Membase1 ~]$ cd brutis-v0_93
[user@Membase1 brutis-v0_93]$ ./brutis -x localhost:11211 -v
Starting Collector
Brutis 1 Connections
Type Ops/sec Hits/sec Misses/sec Fails/sec Latency MB/sec
-------------------------------------------------------------------------------
Sets: 129.63 --- --- 0.00 0.000731 0.03
Gets: 1,294.15 0.43 1,293.72 0.00 0.000532 0.00
Totals: 1,423.78 0.43 1,293.72 0.00 0.000632 0.03
-------------------------------------------------------------------------------
SETS GETS
-------------------------------------------------------------------------------
Host Ops/sec Latency MB/sec Ops/sec Latency MB/sec
-------------------------------------------------------------------------------
Membase1 129.63 0.000731 0.03 1,294.15 0.000532 0.00
<ctrl-c>
Total Operations: 30958
Total Dataset Size: 720640
Total Sets: 2815
Total Gets: 28143
Total Hits: 46
Total Misses: 28097
Total Set Fails: 0
Total MD5 Fails: 0
Total Keys: 2815
Total Transferred: 732416
[user@Membase1 brutis-v0_93]$
Using Memcachetest
Get it from https://github.com/membase/memcachetest
Using Memslap
The memslap tool is part of the libmemcached package at: libmemcached.org
Using mc-loader
The mc-loader tool is a memcached tool written by Keith Batten and can be found on github at https://github.com/kbatten/mc-loader. For information about installing an using this tool please see the [mc-loader page].