run

Runs a benchmark workload.

Syntax

solr-benchmark run [OPTIONS]

Workload selection

Option Description
--workload Named workload from the workloads repository
--workload-path Path to a local workload directory
--workload-repository Git URL for the workloads repository (default: "default", resolved from benchmark.ini)
--workload-revision Git revision (branch, tag, or commit) of the workloads repository; optional, uses the repository’s default branch if omitted
--workload-params Override workload Jinja2 parameters (comma-separated key:value pairs)
--test-procedure Test procedure to run (default: the workload’s default test procedure)
--include-tasks Comma-separated list of task names to run; all other tasks are skipped
--exclude-tasks Comma-separated list of task names to skip
--enable-assertions Enable task-level assertions defined in the workload

Cluster and pipeline

Option Description
--pipeline Pipeline to use: benchmark-only, docker, from-distribution, from-sources. If omitted, the pipeline is selected automatically (see below)
--target-hosts Comma-separated list of Solr host:port targets
--distribution-version Solr version (e.g., 9.10.1) for docker/from-distribution pipelines
--cluster-config Cluster configuration preset for docker/from-distribution/from-sources pipelines

Pipeline auto-selection

If --pipeline is omitted, Solr Benchmark selects a pipeline automatically:

  • from-distribution — when --distribution-version is specified
  • benchmark-only — otherwise (connects to an already-running cluster)

Distributed load generation

Option Description
--worker-ips Comma-separated IP addresses of worker coordinator machines for distributed load generation (default: localhost)

Multiple-iteration aggregation

Option Default Description
--test-iterations 1 Number of times to repeat the workload
--aggregate true Aggregate results from all iterations
--sleep-timer 5 Seconds to wait between iterations
--cancel-on-error false Abort remaining iterations if any iteration fails

Telemetry

Option Description
--telemetry Comma-separated list of optional telemetry devices to enable (see Telemetry reference)
--telemetry-params Key-value parameters for telemetry devices

Result output

Option Description
--test-run-id Custom unique ID for this run (auto-generated if omitted); used with compare
--user-tag A single key:value metadata pair attached to every metric record in this run (e.g., intention:baseline)
--results-format Output format: markdown (default) or csv
--results-numbers-align Column alignment in the summary table: right (default), left, center, or decimal
--results-file Write the summary table to a file in addition to the default location
--show-in-results Which values to include in output: available (default), all-percentiles, or all
--visualize Generate an interactive HTML visualization after the run
--visualize-output-path Path to write the HTML visualization file

General

Option Description
--test-mode Run a shortened version of the workload (≤1,000 docs) for quick validation
--on-error Error handling: continue (default), abort
--client-options / -c Comma-separated client options (default: timeout:60)
--kill-running-processes / -k Kill other running solr-benchmark processes before starting
--preserve-install Keep the Solr installation after the run (provisioned pipelines only)

The --quiet flag is accepted by all subcommands; see Command Flags.

Workload parameter overrides

Workload files can contain Jinja2 template variables, for example:

{
  "bulk-size": ,
  "clients": 
}

Override these at run time with --workload-params as a comma-separated list of key:value pairs:

solr-benchmark run --workload-params "bulk_size:1000,clients:8" ...

Related parameter flags:

Flag Purpose
--workload-params Jinja2 variable overrides for the workload
--cluster-config-params Variable overrides for the cluster configuration
--plugin-params Parameters passed to all configured plugins
--telemetry-params Parameters passed to telemetry devices

Examples

# Benchmark an existing cluster
solr-benchmark run \
  --pipeline benchmark-only \
  --target-hosts localhost:8983 \
  --workload nyc_taxis \
  --test-mode

# Docker pipeline with Solr 9.10.1
solr-benchmark run \
  --pipeline docker \
  --distribution-version 9.10.1 \
  --workload nyc_taxis

# Custom workload with parameter overrides
solr-benchmark run \
  --pipeline benchmark-only \
  --target-hosts localhost:8983 \
  --workload-path /path/to/my-workload \
  --workload-params "bulk_size:1000,clients:8"

# With optional telemetry devices
solr-benchmark run \
  --pipeline benchmark-only \
  --target-hosts localhost:8983 \
  --workload nyc_taxis \
  --telemetry shard-stats,cluster-environment-info

# Run 3 iterations and aggregate results
solr-benchmark run \
  --pipeline benchmark-only \
  --target-hosts localhost:8983 \
  --workload nyc_taxis \
  --test-iterations 3 \
  --sleep-timer 10

See also