Solr Bench: Benchmarking Suite for Solr

What is Solr Bench?

Solr Bench is a flexible, configurable benchmarking suite for Solr. Given a dataset, set of queries, configset and a build of Solr, Solr Bench will run benchmarks against a deployed setup and output key performance metrics for indexing, querying, CPU usage, memory usage etc. This project was started as a Google Summer of Code project (https://jira.apache.org/jira/browse/SOLR-10317) and later supported by FullStory.

Who is this for?

Solr developers / contributors / committers

  1. Can use this alongside CI systems to measure performance upon every commit point.

Organizations using Solr

  1. Run before upgrading Solr versions to validate performance characteristics
  2. For performance tuning using various configuration parameters
  3. Hardware sizing and capacity estimation for planned workloads
  4. Choosing the right sharding and replication strategy for their traffic patterns and workloads

How does it work?

At the moment, there are two modes of provisioning Solr nodes for benchmarking:

  1. Local provisioning: Solr nodes (JVMs) will all be spun up on the same machine from where the benchmarking will be executed.
  2. Google Cloud Platform VM Instances: Solr Bench will spin up VM instances (as configured) and run Solr on them. This provisioning works via Terraform internally.

The Solr build for the benchmarking can either be provided (as a tgz file) or Solr Bench can build it from a Git repository. The dataset for indexing can be either a TSV or a JSONL file.

Checkout https://github.com/fullstorydev/solr-bench for more details.