View on GitHub

RadarGun

Benchmarking framework for data grids and distributed caches

Scenario

Scenario element contains the series of stages that will be executed on each cluster-configuration pair. Several base stages are defined on RadarGun core project, most stages are defined by RadarGun extensions they belong to and all are described on their respective pages.

Stage element attributes (shared)

slaves (optional) - specifies slaves the stage should be ran on by index (slave.index property)
groups (optional) - specifies which groups the stage will be ran on by name

Example scenario

    <rg:scenario xmlns:rg="urn:radargun:benchmark:3.0"
      xmlns="urn:radargun:stages:core:3.0"
      xmlns:cache="urn:radargun:stages:cache:3.0">

      <service-start />

      <jvm-monitor-start />

      <cache:load num-entries="10000"/>
      
      <cache:basic-operations-test test-name="warmup" num-operations="100000" num-threads-per-node="5">
        <cache:key-selector>
          <cache:concurrent-keys total-entries="5000" />
        </cache:key-selector>
      </cache:basic-operations-test>
      
      <repeat from="10" to="30" inc="10">
        <cache:basic-operations-test test-name="stress-test" amend-test="true"
          duration="1m" num-threads-per-node="${repeat.counter}">
          <cache:key-selector>
            <cache:concurrent-keys total-entries="10000"/>
          </cache:key-selector>
          <statistics>
            <common/>
          </statistics>
        </cache:basic-operations-test>
      </repeat>

      <jvm-monitor-stop />

    </rg:scenario>

This is a rather basic scenario example rigged to test basic operations performance of cache.

Scenario design

There are no strict requirements placed on the scenario design, however there are some tips and points to be shared in order to obtain useful results: