httperf wrapper for benchmarking CouchDB

Features:

  • Results sent to CouchDB and printed in TSV

  • Creates wsesslog files dynamically using random data for document writes and _all_docs for reads

  • Lots of knobs: session counts, document size, request rate, etc

  • httperf session work logs are attached to results for replaying later

License:

This code is available as Open Source Software under the MIT license.

Usage:

$ gem sources -a gemcutter.org $ gem install baracus $ baracus /path/baracus.yml

Suggestions:

  • Set “ulimit -n 65535” before running baracus

  • Change FD_SETSIZE to 65535 in /usr/include/bits/typesizes.h before compiling httperf

  • For tests with more than 1000 sessions increase MAX_SESSION_TEMPLATES in gen/wsesslog.c before compiling httperf

Acknowlegdements:

Details on httperf www.hpl.hp.com/research/linux/httperf/httperf-man-0.9.txt Some of the httperf output parsing code was taken from github.com/sv/httperf4r