Over a million developers have joined DZone.

The Couchbase Workload Generator

· Database Zone

Learn NoSQL for free with hands-on sample code, example queries, tutorials, and more.  Brought to you in partnership with Couchbase.

As a developer, if you’ve installed Couchbase Server 2.0 and seen its new features, you might want to hit the server with some load to do some basic testing of your Couchbase cluster. I’ve personally had a number of reasons to need to run a random workload against Couchbase to be able to demonstrate how it works and the different statistics shown in the Couchbase admin UI.

Using cbworkloadgen, a sample workload generator tool for Couchbase, you can try a different operations and monitor the activity of your cluster. cbworkloadgen provides basic testing functionality but is not designed for performance or stress testing. It has options for tuning the ratio of set:get operations, the number and size of the documents inserted and the number of concurrent worker threads.

If you want to quickly test your Couchbase Server installation using cbworkloadgen, you can execute the cbworkloadgen tool supplying the IP address of the running node with the -n option.

Dons-MacBook-Pro:tools don$ pwd

/Applications/Couchbase Server.app/Contents/Resources/couchbase-core/bin/tools

Dons-MacBook-Pro:tools don$ ./cbworkloadgen -n localhost:8091

[####################] 100.0% (10527/10526 msgs)

bucket: default, msgs transferred...

     :                total |       last |    per sec

batch :                   11 |         11 |       18.6

byte  :               105270 |     105270 |   177716.4

msg   :                10527 |      10527 |    17771.6


If you want to do a longer test, you can insert more items and control the item size, number of threads and the ratio of sets:gets. In the example below we insert 500K items with a minimum size of 10 and 20% set:get ratio.

Dons-MacBook-Pro:tools don$ ./cbworkloadgen -n localhost:8091 -i 500000 -r .2 -s 10

[####################] 100.0% (2499996/2500000 msgs)

bucket: default, msgs transferred...

     :                total |       last |    per sec

batch :                 2500 |       2500 |       20.3

byte  :             24999960 |   24999960 |   203332.9

msg   :              2499996 |    2499996 |    20333.3


Finally, don’t forget to look at how the different metrics change in the Couchbase admin UI as shown below:

A workload in progress shown using the admin UI


Summary stats

Stats for data partitions (vBuckets)
Disk queue stats 
As you can see, cbworkloadgen is a quick way to generate a load against Couchbase Server without a lot of effort.
Good luck with your Couchbase Applications!

The Getting Started with NoSQL Guide will get you hands-on with NoSQL in minutes with no coding needed. Brought to you in partnership with Couchbase.


Published at DZone with permission of Don Pinto, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}