NoSQL Redis and Memcache traffic generation and benchmarking tool.
C++ C Roff Other
Clone or download
YaacovHazan and yaacovhazan-Redislabs fix full-test iterations (#59)
when using -x (full-test iterations) option, the next
iterations of test after the first one, can run with out sending
any requests, due to uninitialize parameter in client class.
Latest commit 1c37f77 Jul 18, 2018
Permalink
Failed to load latest commit information.
libmemcached_protocol Include binary memcached protocol header files and remove library dep… Jul 12, 2013
.gitignore First memtier_benchmark version. Jun 27, 2013
CHANGES support MOVED in cluster mode (#54) Jul 5, 2018
COPYING First memtier_benchmark version. Jun 27, 2013
Dockerfile added dockerfile (#33) Jul 18, 2017
JSON_handler.cpp add support for JSON output (#18) Feb 23, 2017
JSON_handler.h add support for JSON output (#18) Feb 23, 2017
Makefile.am add support for cluster mode (#42) Dec 21, 2017
README.import Add data verification options. Aug 14, 2013
README.md add support for cluster mode (#42) Dec 21, 2017
client.cpp fix full-test iterations (#59) Jul 18, 2018
client.h support MOVED in cluster mode (#54) Jul 5, 2018
cluster_client.cpp support MOVED in cluster mode (#54) Jul 5, 2018
cluster_client.h support MOVED in cluster mode (#54) Jul 5, 2018
config_types.cpp add support for JSON output (#18) Feb 23, 2017
config_types.h add support for JSON output (#18) Feb 23, 2017
configure.ac support MOVED in cluster mode (#54) Jul 5, 2018
connections_manager.h support MOVED in cluster mode (#54) Jul 5, 2018
file_io.cpp add support for JSON output (#18) Feb 23, 2017
file_io.h add support for JSON output (#18) Feb 23, 2017
item.cpp add support for JSON output (#18) Feb 23, 2017
item.h add support for JSON output (#18) Feb 23, 2017
memtier_benchmark.1 Titles and manpage updates. Dec 5, 2016
memtier_benchmark.cpp support MOVED in cluster mode (#54) Jul 5, 2018
memtier_benchmark.h Fix issues with 64 bit keyspace May 16, 2018
obj_gen.cpp Fix issues with 64 bit keyspace May 16, 2018
obj_gen.h add support for cluster mode (#42) Dec 21, 2017
protocol.cpp add support for cluster mode (#42) Dec 21, 2017
protocol.h add support for cluster mode (#42) Dec 21, 2017
shard_connection.cpp support MOVED in cluster mode (#54) Jul 5, 2018
shard_connection.h support MOVED in cluster mode (#54) Jul 5, 2018

README.md

memtier_benchmark

memtier_benchmark is a command line utility developed by Redis Labs (formerly Garantia Data Ltd.) for load generation and bechmarking NoSQL key-value databases. It offers the following:

  • Support for both Redis and Memcache protocols (text and binary)
  • Multi-threaded multi-client execution
  • Multiple configuration options, including:
  • Read:Write ratio
  • Random and sequential key name pattern policies
  • Random or ranged key expiration
  • Redis cluster
  • ...and much more

Read more at:

Getting Started

Prerequisites

The following libraries are required for building:

  • libevent 2.0.10 or newer.
  • libpcre 8.x.

The following tools are required

  • autoconf
  • automake
  • GNU make
  • GCC C++ compiler

CentOS 6.x Prerequisites

On a CentOS 6.4 system, use the following to install prerequisites:

# yum install autoconf automake make gcc-c++ 
# yum install pcre-devel zlib-devel libmemcached-devel

CentOS 6.4 ships with older versions of libevent, which must be manually built and installed as follows:

To download, build and install libevent-2.0.21:

$ wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
$ tar xfz libevent-2.0.21-stable.tar.gz
$ pushd libevent-2.0.21-stable
$ ./configure
$ make
$ sudo make install
$ popd

The above steps will install into /usr/local so it does not confict with the distribution-bundled versions. The last step is to set up the PKG_CONFIG_PATH so configure can find the newly installed library.

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}

Then proceed to follow the build instructions below.

Ubuntu 12.x Prerequisites

On recent Ubuntu versions, simply install all prerequisites as follows:

# apt-get install build-essential autoconf automake libpcre3-dev libevent-dev pkg-config zlib1g-dev

Cluster mode

In case where there is some asymmetry between the redis nodes, and user set the number of total requests with sequential key pattern options, it might be gaps in the generated keys.

Building and installing

After downloading the source tree, use standard autoconf/automake commands::

$ autoreconf -ivf
$ ./configure
$ make
$ make install

Using Docker

$ docker build -t memtier_benchmark .
$ docker run --rm memtier_benchmark --help

Using memtier_benchmark

See the included manpage or run::

$ memtier_benchmark --help

for command line options.

githalytics.com alpha