Benchmarks

Benchmarks are run by Enos by the mean of a workload description. A workload is a set of scenarios grouped by type. A workload is launched with the following command:

(venv) $ enos bench --workload=workload

enos will look into the workload directory for a file named run.yml. This file is the description of the workload to launch. One example is given below:

rally:
  enabled: true  # default is true
  args:
    concurrency:
      - 1
      - 2
      - 4
    times:
      - 100
  scenarios:
    - name: boot and list servers
      enabled: true # default is true
      file: nova-boot-list-cc.yml
      args:
        sla_max_avg_duration: 30
        times: 50

This will launch all the scenarios described under the scenarios keys with all the possible parameters. The parameters are calculated using the cartesian product of the parameters given under the args keys. Locally defined args (scenario level) shadow globally defined args (top level). The same mechanism is applied to the enabled values. The scenario must be parameterized accordingly. The key (rally here) defines the type of benchmark to launch: in the future we may support other type of scenarios.

After running the workload, a backup of the environment can be done through enos backup.

Rally

Enos supports natively Rally scenarios. Please refer to the Rally documentation for any further information on this benchmarking tool.

Supported keys :

  • name: the name of the scenario. Can be any string.

  • file: must be the path to the scenario file. The path is relative to the workload directory

  • enabled: Whether to run this scenario

  • args: Any parameters that can be understood by the rally scenario

  • plugin: must be the path to the plugin. The path is relative to the workload directory

Shaker

Enos supports natively Shaker scenarios. Please refer to the Shaker documentation for any further information on this benchmarking tool.

Supported keys :

  • name: the name of the scenario. Can be any string.

  • file: must be the alias of the scenario. Enos don’t support custom scenario yet.

  • enabled: Whether to run this scenario