使用 esrally race 测试 Elasticsearch 性能:实践指南

在 Elasticsearch 性能优化和容量规划中,使用 esrally 进行基准测试是官方推荐的方式。通过 esrally race 命令,您可以针对不同的数据集与挑战类型,对 Elasticsearch 集群进行精确的性能评估。本文将简要介绍常用的数据集与挑战类型,并详细解析命令参数,然后展示测试结果分析和最终总结。


一、不同数据集与挑战类型简介

数据集(Tracks):

  1. geonames
    • 数据特性:地理位置相关信息(城市名、坐标、国家代码等),字段较为复杂。
    • 场景适用:地理查询、基于位置的检索和分析。
  2. http_logs
    • 数据特性:仿真 HTTP 访问日志的半结构化数据,字段较少、文本为主。
    • 场景适用:日志分析、全文搜索、可视化检索。

挑战类型(Challenges):

  1. append-no-conflicts-index-only
    • 特点:仅对集群进行数据写入(索引)操作,无查询。
    • 场景:高写入吞吐场景,如日志持续入库。
  2. append-no-conflicts
    • 特点:同时进行数据写入和查询操作。
    • 场景:读写混合场景,如搜索引擎、实时分析系统。

通过结合不同的数据集与挑战类型,您可以模拟多种现实场景。例如,使用 geonames + append-no-conflicts 来测试地理数据的读写混合性能,或使用 http_logs + append-no-conflicts-index-only 来评估日志高写入场景的吞吐量。


二、测试命令与参数解析

以下为一条典型的 esrally race 命令示例。请根据实际环境替换 <ES_CLUSTER_IP>, <USERNAME>, <PASSWORD> 与所需的数据集、挑战类型参数。

esrally race --pipeline=benchmark-only \--target-hosts=<ES_CLUSTER_IP>:9200 \--track-path=~/.rally/benchmarks/tracks/default/http_logs \--client-options="basic_auth_user:<USERNAME>,basic_auth_password:<PASSWORD>" \--challenge=append-no-conflicts \--report-file=~/result.csv \--report-format=csv

参数解析:

  1. --pipeline=benchmark-only
    使用已存在的 Elasticsearch 集群进行测试,不启动新的测试集群。

  2. --target-hosts=<ES_CLUSTER_IP>:9200
    指定目标集群的地址与端口。可使用内网 IP 或公网 IP,需根据实际情况替换。

  3. --track-path=~/.rally/benchmarks/tracks/default/<DATASET>
    指定数据集(如 geonameshttp_logs)的轨迹路径。

  4. --client-options="basic_auth_user:<USERNAME>,basic_auth_password:<PASSWORD>"
    配置客户端认证信息。如果 Elasticsearch 开启了安全认证,请替换为真实用户名与密码;未开启则可忽略此参数。

  5. --challenge=<CHALLENGE_TYPE>
    选择测试挑战类型,如 append-no-conflicts-index-onlyappend-no-conflicts

  6. --report-file=~/result.csv--report-format=csv
    将测试结果保存为 CSV 文件,便于后续数据分析、比对和存档。


三、测试结果分析

执行上述命令后,esrally 会产生一份 CSV 格式的报告文件(如 http_logs_result.csv)。报告中常见的指标包括:

  • 索引吞吐量 (Indexing Throughput):每秒成功写入的文档数。
  • 查询吞吐量 (Query Throughput):每秒完成的查询请求数(仅在 append-no-conflicts 场景下有意义)。
  • 延迟 (Latency):请求操作(索引或查询)从发出到响应的时间分布(如 50th 百分位、90th 百分位)。
  • 错误率 (Error Rate):测试过程中操作失败的比例。

举例分析(示例数据并非真实测试结果):

数据集挑战类型索引吞吐量 (ops/s)查询吞吐量 (ops/s)延迟50th (ms)延迟90th (ms)错误率 (%)
geonamesappend-no-conflicts-index-only5,000-10150.0
geonamesappend-no-conflicts4,0001,50012 (索引)20 (查询)0.0
http_logsappend-no-conflicts-index-only8,000-8120.0
http_logsappend-no-conflicts6,5002,00010 (索引)18 (查询)0.0

从上表可见:

  • 对于高写入场景(index-only),http_logs 数据集因数据结构简单而获得更高的写入吞吐量。
  • 对于混合场景(append-no-conflicts),http_logs 也表现出较高的查询吞吐量和较低的延迟,适合日志分析类场景。
  • geonames 数据集在复杂查询下的吞吐量与延迟表现稍逊于 http_logs,但更能模拟地理复杂查询的真实情况,对于地理搜索场景更具参考价值。

四、总结

通过合理搭配数据集(如 geonameshttp_logs)和挑战类型(如 append-no-conflictsappend-no-conflicts-index-only),您可以全面评估 Elasticsearch 集群在不同业务场景下的性能表现。生成的测试报告(如 CSV 格式)有助于直观了解吞吐量、延迟和错误率,并为后续集群优化提供指导。

在实际生产中,您可根据业务需求选择最符合场景的数据集与挑战类型,不断迭代测试与优化,最终提升 Elasticsearch 的服务质量与用户体验。


如有进一步问题或建议,欢迎留言讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/64662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL复制问题和解决

目录 环境介绍 一&#xff0c;主库执行delete&#xff0c;从库没有该数据 模拟故障 修复故障 二&#xff0c;主库执行insert&#xff0c;从库已存在该数据 模拟故障 故障恢复 三&#xff0c;主库执行update&#xff0c;从库没有该数据 模拟故障 故障恢复 四&#xf…

提供详细的步骤指导,如何正确地安装和设置易支付服务?

要正确安装和设置易支付服务&#xff0c;您可以按照以下步骤进行操作&#xff1a; 下载易支付服务软件&#xff1a;首先&#xff0c;您需要从易支付官方网站或其他可信来源下载易支付服务软件的安装包。确保下载的软件版本是最新的。 安装易支付服务&#xff1a;双击安装包&am…

[RocketMQ] 发送重试机制与消费重试机制~

发送重试 RocketMQ 客户端发送消息时&#xff0c;由于网络故障等因素导致消息发送失败&#xff0c;这时客户端SDK会触发重试机制&#xff0c;尝试重新发送以达到调用成功的效果。 触发条件 客户端消息发送请求失败或超时。服务端节点处于重启或下线状态。服务端运行慢造成请…

mfc140u.dll是什么文件?如何解决mfc140u.dll丢失的相关问题

遇到“mfc140u.dll文件丢失”的错误通常影响应用程序的运行&#xff0c;这个问题主要出现在使用Microsoft Visual C环境开发的软件中。mfc140u.dll是一个重要的系统文件&#xff0c;如果它丢失或损坏&#xff0c;会导致相关程序无法启动。本文将简要介绍几种快速有效的方法来恢…

前端使用xlsx.js实现 Excel 文件的导入与导出功能

前端使用xlsx.js实现 Excel 文件的导入与导出功能 在现代的 Web 开发中&#xff0c;处理文件上传和导出功能已经变得越来越常见&#xff0c;尤其是 Excel 文件的导入与导出。 我们将使用 Vue.js 和 XLSX.js 库来处理 Excel 文件的读取和生成。XLSX.js 是一个强大的 JavaScrip…

02-9.python入门基础一Python模块与包(一)

一、Python 模块的概念 &#xff08;一&#xff09;模块的基本定义 在 Python 中&#xff0c;模块&#xff08;Module&#xff09;是一种组织代码的基本单元&#xff0c;简单来说&#xff0c;一个以 .py 结尾的 Python 文件就是一个模块。例如&#xff0c;我们创建一个名为 ex…

当我用影刀AI Power做了一个旅游攻略小助手

在线体验地址&#xff1a;旅游攻略小助手https://power.yingdao.com/assistant/ca1dfe1c-9451-450e-a5f1-d270e938a3ad/share 运行效果图展示&#xff1a; 话不多说一起看下效果图&#xff1a; 智能体的截图&#xff1a; 工作流截图&#xff1a; 搭建逻辑&#xff1a; 其实这…

Apache Tomcat 漏洞CVE-2024-50379条件竞争文件上传漏洞 servlet readonly spring boot 修复方式

1&#xff0c;关于漏洞 Apache Tomcat是一个流行的开源 Web 服务器和 Java Servlet 容器。 二、 漏洞描述 Apache Tomcat中修复了个 TOCTOU 竞争条件远程代码执行漏洞 (CVE-2024-50379)&#xff0c;该漏洞的 CVSS 评分为 9.8。Apache Tomcat 中 JSP 编译期间存在检查时间使用时…

AI Agent与MEME:技术与文化融合驱动Web3创新

AI Agent如何引领Web3新时代&#xff1f; 随着Web3与区块链技术的迅速发展&#xff0c;AI Agent作为人工智能与区块链的交汇点&#xff0c;正在逐步成为推动去中心化生态的重要力量。同时&#xff0c;MEME文化凭借其强大的社区驱动力和文化渗透力&#xff0c;在链上生态中扮演着…

EasyExcel 导出文件

EasyExcel 导出文件 EasyExcel导出文件,并解决格式报错 项目中使用EasyExcel导出数据 EasyExcel导出数据 引入pom文件 <!-- easy-excel --> <dependency><groupId>com.alibaba</groupId></

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——11上位机与小车交互

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——11上位机与小车交互 ​ 根据上一节的配置&#xff0c;目前已经建立了通讯环境&#xff0c;接下来给大家带来上位机与小车交互 这一章节里面也有图片大家去地瓜开发者社区看对应文章吧链接

【STM32 Modbus编程】-作为主设备写入多个线圈和寄存器

作为主设备写入多个线圈和寄存器 文章目录 作为主设备写入多个线圈和寄存器1、硬件准备与连接1.1 RS485模块介绍1.2 硬件配置与接线1.3 软件准备2、写入多个线圈2.1 数据格式2.2 发送数据2.3 结果3、写入多个寄存器3.1 数据格式3.2 发送数据3.3 结果本文将实现STM32作为ModBus主…

使用二分查找法找出给定点距离给定点集合距离最近的点

1、场景描述 给定点Point A &#xff08;x,y&#xff09;和 直线点集合 Points [(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)......],计算出集合中距离点A最近的一个点 &#xff08;如果集合中的两个点距离A点最近且相等&#xff0c;则只取其中一个&#xff09; 2、代码&#x…

经济学 ppt 2 部分

前言 上一次复习经济学是好久之前了&#xff0c;看了第一章的 ppt &#xff0c;好像重点就是谁是软件经济学之父。昨天老师讲了一下题型&#xff0c;20 分选择题&#xff0c; 20 分判断题&#xff0c;20 分计算题&#xff0c;6 6 8 三个计算题&#xff0c;25 分表格&#xff0…

winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭

winform中屏蔽双击最大化或最小化窗体(C#实现)&#xff0c;禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭 protected override void WndProc(ref Message m){#region 处理点击窗体标题栏放大缩小问题&#xff0c;禁用点击窗体标题栏放大缩小//logger.Info($&…

【SolidWorks转URDF】ROS学习笔记

一、环境配置 软件版本&#xff1a;SolidWorks 2022 SP3.1 Premium 转换插件版本&#xff1a;sw2urdfSetup2021.exe 对硬件有一定要求&#xff0c;需要独立显卡&#xff0c;显存大一点&#xff0c;否则会很卡。 二、文件转换 SolidWorks中的零部件和装配体对应URDF文件中的…

Spring学习之——Sping-XML

一、Spring的概述 (一)什么是Spring? Spring是针对bean对象的生命周期进行管理的轻量级容器。提供了功能强大IOC、AOP及Web MVC等功能。Spring框架主要由七部分组成&#xff1a;分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 S…

电商商品详情API接口(item get)数据分析上货

电商商品详情API接口&#xff08;item get&#xff09;在数据分析与商品上货方面发挥着重要作用。以下是对这两个方面的详细探讨&#xff1a; 一、数据分析 数据源获取&#xff1a; 商品详情API接口提供了丰富的数据源&#xff0c;包括商品的标题、价格、库存、描述、图片、用…

EasyGBS国标GB28181平台P2P远程访问故障排查指南:客户端角度的排查思路

在现代视频监控系统中&#xff0c;P2P&#xff08;点对点&#xff09;技术因其便捷性和高效性而被广泛应用。然而&#xff0c;当用户在使用P2P远程访问时遇到设备不在线或无法访问的问题时&#xff0c;有效的排查方法显得尤为重要。本文将从客户端的角度出发&#xff0c;详细探…

win11 C盘出现感叹号解决方法

出现感叹号&#xff0c;原因是对C盘进行了BitLocker驱动器加密操作。如果想去除感叹号&#xff0c;对C盘进行BitLocker解密即可。 步骤如下&#xff1a; 1.点击Windows搜索框 2.搜索框内输入 系统 3.按下回车&#xff0c;进入系统界面 4.点击隐私和安全性 点击BitLocker驱…