Macrobenchmarking framework for Elasticsearch
Project description
Rally is the macrobenchmarking framework for Elasticsearch
What is Rally?
You want to benchmark Elasticsearch? Then Rally is for you. It can help you with the following tasks:
Setup and teardown of an Elasticsearch cluster for benchmarking
Management of benchmark data and specifications even across Elasticsearch versions
Running benchmarks and recording results
Finding performance problems by attaching so-called telemetry devices
Comparing performance results
We have also put considerable effort in Rally to ensure that benchmarking data are reproducible.
Quick Start
Installing Rally
Note: If you actively develop on Elasticsearch, we recommend that you install Rally in development mode instead as Elasticsearch is fast moving and Rally always adapts accordingly to the latest master version.
Install Python 3.4+ including pip3, JDK 8 and git 1.9+. Then run the following command, optionally prefixed by sudo if necessary:
pip3 install esrally
If you have any trouble or need more detailed instructions, please look in the detailed installation guide.
Configure
Just invoke esrally configure.
For more detailed instructions and a detailed walkthrough see the configuration guide.
Run your first race
Now we’re ready to run our first race:
esrally --distribution-version=5.0.0
This will download Elasticsearch 5.0.0 and run Rally’s default track against it. After the race, a summary report is written to the command line::
------------------------------------------------------ _______ __ _____ / ____(_)___ ____ _/ / / ___/_________ ________ / /_ / / __ \/ __ `/ / \__ \/ ___/ __ \/ ___/ _ \ / __/ / / / / / /_/ / / ___/ / /__/ /_/ / / / __/ /_/ /_/_/ /_/\__,_/_/ /____/\___/\____/_/ \___/ ------------------------------------------------------ | Metric | Operation | Value | Unit | |-------------------------------:|---------------------:|----------:|-------:| | Indexing time | | 28.0997 | min | | Merge time | | 6.84378 | min | | Refresh time | | 3.06045 | min | | Flush time | | 0.106517 | min | | Merge throttle time | | 1.28193 | min | | Median CPU usage | | 471.6 | % | | Total Young Gen GC | | 16.237 | s | | Total Old Gen GC | | 1.796 | s | | Index size | | 2.60124 | GB | | Totally written | | 11.8144 | GB | | Heap used for segments | | 14.7326 | MB | | Heap used for doc values | | 0.115917 | MB | | Heap used for terms | | 13.3203 | MB | | Heap used for norms | | 0.0734253 | MB | | Heap used for points | | 0.5793 | MB | | Heap used for stored fields | | 0.643608 | MB | | Segment count | | 97 | | | Min Throughput | index-append | 31925.2 | docs/s | | Median Throughput | index-append | 39137.5 | docs/s | | Max Throughput | index-append | 39633.6 | docs/s | | 50.0th percentile latency | index-append | 872.513 | ms | | 90.0th percentile latency | index-append | 1457.13 | ms | | 99.0th percentile latency | index-append | 1874.89 | ms | | 100th percentile latency | index-append | 2711.71 | ms | | 50.0th percentile service time | index-append | 872.513 | ms | | 90.0th percentile service time | index-append | 1457.13 | ms | | 99.0th percentile service time | index-append | 1874.89 | ms | | 100th percentile service time | index-append | 2711.71 | ms | | ... | ... | ... | ... | | ... | ... | ... | ... | | Min Throughput | painless_dynamic | 2.53292 | ops/s | | Median Throughput | painless_dynamic | 2.53813 | ops/s | | Max Throughput | painless_dynamic | 2.54401 | ops/s | | 50.0th percentile latency | painless_dynamic | 172208 | ms | | 90.0th percentile latency | painless_dynamic | 310401 | ms | | 99.0th percentile latency | painless_dynamic | 341341 | ms | | 99.9th percentile latency | painless_dynamic | 344404 | ms | | 100th percentile latency | painless_dynamic | 344754 | ms | | 50.0th percentile service time | painless_dynamic | 393.02 | ms | | 90.0th percentile service time | painless_dynamic | 407.579 | ms | | 99.0th percentile service time | painless_dynamic | 430.806 | ms | | 99.9th percentile service time | painless_dynamic | 457.352 | ms | | 100th percentile service time | painless_dynamic | 459.474 | ms | ---------------------------------- [INFO] SUCCESS (took 2634 seconds) ----------------------------------
Getting help
Quick help: esrally --help
Look in Rally’s user guide for more information
Ask questions about Rally in the Rally Discuss forum.
File improvements or bug reports in our Github repo.
How to Contribute
See all details in the contributor guidelines.
License
This software is licensed under the Apache License, version 2 (“ALv2”), quoted below.
Copyright 2015-2017 Elasticsearch <https://www.elastic.co>
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file esrally-0.5.3-py3-none-any.whl
.
File metadata
- Download URL: esrally-0.5.3-py3-none-any.whl
- Upload date:
- Size: 125.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39d4a145083d0b05627c560160d8f81b7fc9323019ce0f95636a558a7f10fdaa |
|
MD5 | 42a146e2dbbf8f19433f6ec530f40723 |
|
BLAKE2b-256 | f4f007e0c3b1ffe3da26ac559d2b263df61ecaca75c77c6ccb27113a0e2dab32 |