View on GitHub

RadarGun

Benchmarking framework for data grids and distributed caches

Example configurations

Following benchmark configuration files can be found in /conf folder of built project.

NOTE: When working with external application builds always check you have appropriate version, in case of weird errors check again.

benchmark-aggregation-query.xml - Shows correct usage of query extension on Infinispan 9.0

benchmark-analysis.xml - Shows how to analyze results of a stage and then re-use the results in another stage/store them to results via analyze-test and add-result stages

benchmark-coherence-hazelcast.xml - Shows how to run comparative analysis of three products (Coherence, Hazelcast and Infinispan)

This benchmark requires Coherence plugin which is not built by default due to licensing constraints.

benchmark-combined-report.xml - Shows how to property handle combining different tests

This benchmark is using colliding-keys key selector, consequently it produces a lot of errors in logs due to key clashes.

benchmark-condition.xml - Shows how to use conditions in the repeat stage

benchmark-continuous-query.xml - Shows how to call continuous queries using continuous-query stage

benchmark-dist-custom-vars.xml - Shows how to define custom properties through define stage

benchmark-distexec.xml - Shows how to call java.util.concurrent.Callable implementations via distributed-task stage

benchmark-dist.xml - Shows the most basic benchmark on multiple clusters and configurations.

benchmark-hazelcast-server.xml - Shows performance test for Hazelcast client/server configuration

benchmark-hotrod-rest-memcached.xml - Shows performance testing for same-server/different-client configurations

Environment variables:

  • ISPN_8_HOME - pointing to Infinispan server home directory

benchmark-hotrod-spark-mapreduce.xml - Shows how to benchmark mapreduce operations on Infinispan coupled with Spark

Environment variables:

  • SPARK_161_HOME - pointing to Spark home directory
  • ISPN_82_HOME - pointing to Infinispan server home directory

benchmark-hotrod-streaming.xml - Shows how to compare memory usage on Infinispan clients using and not using Streaming API

Environment variables:

  • ISPN_9_ZIP_PATH - path to Infinispan server distribution file
  • RG_WORK - the directory RadarGun will use to unpack Infinispan server instances to

benchmark-iteration.xml - Shows how to use iterate stage to iterate over all entries in the cache

benchmark-jcache.xml - Shows how to configure comparative benchmark on two products over JCache

benchmark-jgroups.xml - Shows how to execute JGroups probe queries using j-groups-probe stage

benchmark-mapreduce.xml - Shows how to execute mapReduce operations using map-reduce stage

benchmark-query.xml - Shows how to load values from dictionary and then query them using query extension

benchmark-redis.xml - Shows how to setup a performance test for Redis

This benchmark requires re-packaged Redis distribution, in order to run it you will have to download and build it according to instruction on Redis homepage, then pack the folder contents (not folder itself) as redisdistro.zip and provide path to it as environment variable.

Environment variables:

  • REDIS_DISTRO_ZIP_PATH - pointing to zip containing built Redis

benchmark-rest-cs-tomcat.xml - Shows how to call REST operation on web server using rest-operations-test stage

This configurations requires manual intervention in Tomcat installation which is to be used, specifically:

    <role rolename="manager-script"/>
    <user username="tomcat" password="tomcat" roles="manager-script"/>

Environment variables:

  • CATALINA_HOME - path to tomcat folder

benchmark-stream.xml - Shows how to execute distributed stream tasks via stream stage

benchmark-xsite-jmx.xml - Shows how to invoke JMX-exposed methods via jmx-invocation stage and how to test cross-site replication via xs-repl-check stage

benchmark-xsite-repl.xml - Shows hot to test cross-site replication via xs-repl-check stage

benchmark-tomcat-docker.xml - shows how to configure and run Docker container as part of the benchmark

Requires same manual setup as benchmark-rest-cs-tomcat.xml (above) and also these:

    <Listener className="org.jboss.modcluster.container.catalina.standalone.ModClusterListener" advertise="false" stickySession="true" stickySessionForce="false" stickySessionRemove="true" proxyList="localhost:6666"/>

Environment variables:

  • CATALINA_HOME - path to tomcat folder