Elasticsearch Rally(三)使用

之前介绍了 Elasticsearch Rally 的基本概念和使用场景,可以看看上面的链接复习一下。今天准备分享一下 esrally 的用法。

下面我们来看看 esrally 作为自建 Elasticsearch 集群的基准测试工具是怎么用的。当然,过程中还要搭配监控工具,比如 Prometheus + Grafana,这部分今天先不展开。

基于Docker

esrally 基于 Python 3 开发,通过 pip 可以很容易部署,不过你得有 Python 3 的环境。

我更推荐使用 Docker 的方式,比较省事。

你可能会想到,esrally 在测试过程中,会下载测试数据集到本地,然后读取数据发送到 Elasticsearch 集群。

这个过程不是会对于Docker 容器的文件系统进行大量读写操作吗?那么性能测试是否有可能因此不准,比如文件系统IO不行?

这个问题是无需担心的。

我们知道,esrally 对于本地文件系统的读写会在 ~/.rally/benchmarks 目录下,那么我们可以将 Docker 容器中的 ~/.rally/benchmarks 目录通过宿主机目录 bind mount 的方式进行挂载。

Docker 的数据卷有几种方式,其中bind mount 对于宿主机文件系统读写性能几乎没有损耗,以后有时间再来专门讨论。

今天我们先记住这个结论就好。

好了,可以放心的使用 Docker 容器方式了。

我为测试自建 Elasticsearch 集群,做了一个 esrally 的 Docker 镜像。在 Docker Hub 上连接我的 Github 库,创建了自动化构建的项目。

当前的版本是 lyremelody/esrally:0.9.0,基于 esrally 0.9.0。

你可以把镜像拉到本地:

docker pull lyremelody/esrally:0.9.0

基本使用

假设你的 Elasticsearch 集群有三个节点,IP地址分别为:192.168.1.5:9200,192.168.1.6:9200,192.168.1.7:9200。

那么可以这么启动对于 Elasticsearch 集群的测试:

mkdir -p $PWD/.rally/benchmarks

docker run -it --net=host -v $PWD/.rally/benchmarks:/root/.rally/benchmarks -e TARGET_HOST="192.168.1.5:9200,192.168.1.6:9200,192.168.1.7:9200"lyremelody/esrally:0.9.0

这样,esrally 会默认下载geopoint数据集进行基准测试,完成会报告结果。

结果大约形如:

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180131G1I57P00?refer=cp_1026

相关快讯

扫码关注云+社区