Configurations
Configurations is the element of benchmark configuration file which lists all configurations that are to be ran on clusters.
Each configuration has its own config
element containing as many setup
elements as is necessary to cover all specified groups of any cluster.
Setup element attributes
plugin (required) - specifies which plugin will be ran on the group (or cluster if no groups are used)
group (optional) - specifies which group the setup is for, required if the groups are used in clusters configuration
The plugins themselves define their own configuration format in their separate namespaces, but there are two elements defined by core RadarGun. These values apply only to worker VM, if plugin spawns another VM the handling of arguments and varibles for that VM depends on plugin implementation (they are usually defined in separate element).
- Note: These values are not applied to worker instances you start, workers get automatically restarted after the configuration is distributed to them by main.
Setup core elements
vm-args (optional) - defines VM arguments (there is a number of child elements, please refer to the schema file)
environment (optional) - defines VM environment variables in key-value pairs
Following examples fully apply only to their respective plugins.
Basic configuration
This configurations element contains single config which will initialize infinispan52
plugin on all workers (as there are no group definitions) and have it run in embedded mode (node inside worker VM) using “dist-sync.xml” file as configuration source.
- The method used to obtain plugin configuration files (where applies) depends entirelly on plugin implementation, there is no central distribution so the user has to make file available to plugin otherwise (copy to worker machine/place on the shared drive/…)
- Among other places, most plugins tend to look for the files inside their own folder in
conf
subfolder, placing it there is a safe bet
Not entirely basic configuration
This configuration element contains two configs, each with two setups for different groups (groups have to be defined in clusters element). The first config will run infinispan70
plugin, the second config will run infinispan90
plugin, with groups having distinct configuration files and cache configuration.
Complex configuration
This configuration element has only one config with two defined groups, server
and client
. This configuration takes advantage of properties.
Server group will run infinispan90
plugin in server mode - it will start Infinispan server as separate process and manage it.
Arguments will hame following effect:
- home - path to Infinispan server installation
- server-zip - plugin is to lookup Infinispan release zip file on specified path and unpack it into home, useful to ensure clean installation for each run
- ISPN_ZIP_PATH is assumed to be defined as environment property
- env - environment variables that will be set for server VM
- args - VM arguments that will be given to server
- jboss.node.name - specifies a server node name
- jboss.socket.binding.port-offset - specifies offset for server port binding, making sure servers do not compete for same ports on localhost
- default-server-port - Infinispan single port which will be used for Hotrod, Rest and other operations. Non-WildFly server will be used if this parameter is supplied
- jgroups-config - If set, it will replace the default
configuration - cache-container-config - If set, it will replace the default
configuration - interfaces-config - If set, it will replace the default
configuration - socket-bindings-config - If set, it will replace the default
config - endpoints-config - If set, it will replace the default
config - security-config - If set, it will replace the default
config
Client group will run infinispan90
plugin in HotRod mode - a java client library over specialized protocol.
Arguments will have following effect:
- vm-args - worker VM will be limited to maximum if 1 Gigabyte of memory
- servers - HotRod client will connect to ISPN servers on specified addresses/ports. This configuration assumes only two servers.
Notes: Notice the difference between args and vm-args elements, former is used as configuration for the server, while the latter is used as configuration for the worker instance.
Configuration templates
Sometimes when comparing very similar configurations with complex setup these configurations differ by only few details. Such repetition is error-prone, and therefore RadarGun supports configuration templates:
template
here works as a standalone template for the setup
element. You can see that it is possible to chain templates to form a hierarchy, too.
The configuration that’s later in the hierarchy can override any configuration from the parent template; this has some limitations, though, such as not being able to append one element to a list (e.g. the vm-args
) - you need to override the whole list.