Running GridGain Benchmarks

GridGain and all other benchmarks are written on top of Yardstick Benchmarking Framework.

forkme github

Hosted On GitHub

Yardstick Benchmarking Framework  is hosted on GitHub where you can find full documentation.

An example below is based on Yardstick Benchmarking Framework. Other benchmarks are written and executed in a similar way.

Screenshot

Here is an example of a generated graph produced at the end of a benchmark run:

gridgain-gg-compound

Installation

  • Create a local clone of https://github.com/apacheignite/yardstick-ignite.git
  • Change GridGain version in pom.xml if it's needed
  • Add the following repository into pom.xml:
    <repositories>
        <repository>
            <id>GridGain External Repository</id>
            <url>http://www.gridgainsystems.com/nexus/content/repositories/external</url>
        </repository>
    </repositories>
  • Build the framework by running ‘mvn clean package’ command

Benchmark Code

Here is a simple example of how classical put-get benchmarks can be implemented. Yardstick will find and load all benchmarks from the class path automatically.

package org.apache.ignite.yardstick.cache;

	import java.util.Map;
	import org.apache.ignite.IgniteCache;
	import org.apache.ignite.yardstick.cache.model.SampleValue;

	/**
	 * Ignite benchmark that performs put operations.
	 */
	public class IgnitePutBenchmark extends IgniteCacheAbstractBenchmark {
	    /** [email protected]} */
	    @Override public boolean test(Map ctx) throws Exception {
	        int key = nextRandom(args.range());

	        cache.put(key, new SampleValue(key));

	        return true;
	    }

	    /** [email protected]} */
	    @Override protected IgniteCache cache() {
	        return ignite().cache("atomic");
	    }
	}
	

 

Available Benchmarks

The full list of benchmarks that are already available can be found in config/benchmarks.properties file.

Running Benchmarks

Yardstick framework comes with several scripts under ‘bin’ folder. The easiest way to execute benchmarks is to start ‘bin/benchmark-run-all.sh’ script which will start remote server nodes if specified in ‘config/benchmark.properties’ file, and local benchmark driver.

To run benchmarks across a distributed cluster you have to:

  1. Replace "SERVER_HOSTS=localhost,localhost" to "SERVER_HOSTS=ip1,ip2,...,ipN"
  2. Comment
    <property name="localHost" value="127.0.0.1"/>
    in config/ignite-localhost-config.xml and add ip1....ipN to list "addresses" in config/ignite-localhost-config.xml