如何对 ElasticSearch 集群进行压力测试

本文介绍了如何使用Rally工具对ElasticSearch集群进行压力测试,包括测试前的准备、如何执行测试、理解Rally的测试结果以及一些使用技巧。通过Rally的测试数据,可以对比不同集群的性能,为ElasticSearch的选型提供依据。
摘要由CSDN通过智能技术生成

当 ElasticSearch 的业务量足够大,比如每天都会产生数百 GB 数据的时候,你就会自然而然的需要一个性能更强的 ElasticSearch 集群。特别是当你使用的场景是一些典型的大量数据进入的场景,比如网站日志、用户行为记录、大型电商网站的站内搜索时,一个强劲的 ElasticSearch 是必不可少的组件。在这样的场景下,如何找到一组合适的 ElasticSearch 集群?如何评估 ElasticSearch 集群的性能,就成为了一个十分重要的因素。

用什么 ElasticSearch 进行压力测试?

对于 ElasticSearch 性能测试和压力测试方面,其实有很多不同的方案,比如:

  • Rally:Rally 是 Elastic 官方针对于 ElasticSearch 的宏观测试工具。
  • ESPerf:一个基于 Golang 编写的 ElasticSerch 性能测试工具
  • Elasticsearch Stress Test:由著名的 ElasticSearch 服务提供商 Logzio 开发的性能测试工具

除了这些定制化的工具意外以外,ElasticSearch 也可以借由其 Restful API 来使用Load Runner、JMeter等老牌工具进行测试,这些工具零零散散,各有各的用法和用途,不过,对于广大开发者而言,还是官方出的 Rally 更令人满意。

在本篇文章中,将会使用 Rally 来完成 ElasticSearch 集群的压力测试

Rally 作为官方出品的工具,来自官方的信任加成让他成为各家进行压力测试的首选工具。其次, Rally 官方给出了多种默认的数据集(Tracks)。如果你的使用场景覆盖在这些数据集(比如HTTP 访问事件数据、地理名称数据、地理坐标点数据、HTTP 请求日志、问答场景、打车记录等场景)中,可以直接使用已有的数据集,来完成测试,而无需制造测试数据。

 

 

 

即使你的场景比较特殊,无法被官方的数据集所覆盖,也依然可以根据自己的线上数据,来创建数据集,确保测试效果的准确。

 

 

 

如何使用 Rally 进行测试?

在了解了 Rally 后,来具体看一看 Rally 的使用。

测试前的准备

关于 Rally 的基本安装,这里就不再介绍,总的来说十分简单,在配置好了 JDK 和 Python 环境以后,只需要执行pip install rally 就可以完成安装。如果你的环境复杂,希望以一个更简单的方式来运行,你也可以选择使用 Docker 来运行 Rally ,进行测试。关于更多的安装方式,你可以参考 Rally 的安装文档.

在安装完成了 Rally 后,就可以开始进行 ElasticSearch 的测试。

在测试前,你需要先了解一些基本概念

  • race:在 Rally 中,每一次测试都可以称之为 race
  • car: 在 Rally 中,每一个参与测试的集群,都可以称之为 car ,不同的集群就是不同的 car,如果你是在选配置,则可以通过切换 car 来设置不同配置的测试。
  • track: 在 Rally 中,每一次测试用的数据,都可以称之为 Track,不同的 Track 意味着不同的测试数据。
  • challange: 在 Rally 中,每一个 challange 意味着一个不同的测试场景,具体的场景则代表着 ElasticSearch 所执行的操作。

在了解测试的基本概念后,就可以开始进行压力测试。

进行压力测试

测试设备

由于本次测试实际上是一次选型的过程,在测试之前,我曾阅读了 Elastic 官方的权威指南中的硬件部分.在其文档中提供了对于运转 ElasticSearch 集群设备的推荐配置。

  1. 64 GB 内存的机器是非常理想的, 但是32 GB 和16 GB 机器也是很常见的。少于8 GB 会适得其反(你最终需要很多很多的小机器),大于64 GB 的机器也会有问题, 我们将在 堆内存:大小和交换 中讨论。
  2. 如果你要在更快的 CPUs 和更多的核心之间选择,选择更多的核心更好。多个内核提供的额外并发远胜过稍微快一点点的时钟频率。
  3. 如果你负担得起 S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值