1、ES Rally 简介

1、简介

Rally 是 Elastic 官方提供的 ES 基准压测工具

  • Release Blog
  • Github
  • Rally's user guide
  • Offical Forum

2、使用介绍

2.1、默认方式

在本机创建一个 ES 实例,然后对其进行压测,把压测报告放内存中

2.2、持久化压测报告

可以指定一个 ES 集群来存储压测报告,以便回溯对比。需要做 2 个动作:

  • 配置 rally.ini
[reporting]
datastore.type = elasticsearch
datastore.host = localhost
datastore.port = 9200

  • 压测时选择 pipeline:--pipeline=benchmark-only

pipeline 在这里指的是汇报 results 时需要做哪些动作,通过不同的参数,可以自定义步骤:

esrally list pipelines

pipelines desc
from-sources-complete 压测时,从 build ES 源代码这一步开始
from-sources-skip-build 压测时,从跳过 build 步骤开始
from-distribution 压测时,从下载一个指定版本的 ES 源代码开始
benchmark-only 压测时,仅使用指定的 ES 进行压测

2.3、指定压测已有 ES 集群

参考:Benchmarking an existing cluster

在生产中,一般 ES 集群都是自建,并根据业务需求进行了系统和应用优化,这时需要进行远程压测。rally 可以通过参数 --target-hosts= 来指定集群节点。

2.4、协同压测 or 分布式压测

参考:Distributing the load test driver

如果 ES 集群的性能非常好,那么一个 rally 实例产生的负载是不够的,这时可以进行分布式协同压测。

先在多个压测机器和目的 ES 集群的所有节点部署 rally(包括压测数据,部署一台,然后 copy 过去即可),用于发起 rally 压测命令的;接着在目的 ES 集群的各个节点

2.5、自定义 repo 仓库

参考:Changing the default track repository

rally 提供了几个压测场景 tracks,使用的是某些组织的公开数据。但是,生产的业务数据与之大不相同,这时需要使用自己的数据进行压测。rally 可以通过参数 --track-repository= 指定自定义的压测场景。

2.6、离线压测

rally 默认是在线压测的(不可用)

rally 安装后,本身只有压测脚本和压测场景的配置,并没压测场景的样本数据,在运行时才自动从 aws s3 下载,这样的效率非常低。

另外,随着 aws s3 的更新,已经不支持 curl 下载。rally 的下载脚本 ~/.rally/benchmarks/tracks/default/download.sh TRACK_NAME 是使用 curl 来下载文件的,所以在线压测功能本身就不可用。

rally 也可以使用离线压测模式(推荐)

在压测前,通过浏览器先自行下载某个压测场景的样本数据,再上传到压测的机器。

2.7、测试模式

--test-mode 参数用于启动 dry run 模式,rally 只检测运行环境和数据,不会真正执行压测,用于快速检查配置。

你可能感兴趣的:(1、ES Rally 简介)