27-压力测试

测试目标 & 测试数据

● 测试目标

○ 测试集群的读写性能 / 做集群容量规划

○ 对 ES 配置参数进行修改,评估优化效果

○ 修改 Mapping 和 Setting,对数据建模进行优化,并测试评估性能改进

○ 测试 ES 新版本,结合实际场景和老版本进行比较,评估是否进行升级

● 测试数据

○ 数据量 / 数据分布

测试脚本

● ES 本身提供了 REST API,所以,可以通过很多传统的性能测试工具

○ Load Runner (商业软件,支持录制+重放 + DSL )

○ JMeter ( Apache 开源 ,Record & Play)

○ Gatling (开源,支持写 Scala 代码 + DSL)

● 专门为 Elasticsearch 设计的工具

○ ES Pref & Elasticsearch-stress-test

○ Elastic Rally

ES Rally 简介

● Elastic 官方开源,基于 Python 3 的压力测试工具

○ https://github.com/elastic/rally

○ 性能测试结果比较: https://elasticsearch-benchmarks.elastic.co

● 功能介绍

○ 自动创建,配置,运行测试,并且销毁 ES 集群

○ 支持不同的测试数据的比较,也支持将数据导入 ES 集群,进行二次分析

○ 支持测试时指标数据的搜集,方便对测试结果进行深度的分析

Rally 的安装以及入门

● 安装运行

○ Python 3.4+ 和 pip3 / JDK 8 / git 1.9+

○ 运行 pip3 install esrally

○ 运行 esrally configure

● 运行

○ 运行 esrally –distribution-version=7.1.0

○ 运行 1000 条测试数据: esrally –distribution-version=7.1.0 --test-mode

Rally 基本概念讲解

Tournament – 定义测试目标,由多个 race 组成

○ Esrally list races

Track – 赛道:测试数据和测试场景与策略

○ https://github.com/elastic/rallytracks

○ esrally list tracks

Car– 执行测试方案

○ 不同配置的 es 实例

Award – 测试结果和报告

运行一个测试

https://esrally.readthedocs.io/en/stable/tournament.html

什么是压测的流程

● Pipeline 指的是压测的一个流程

○ Esrally list pipelines

● 默认的流程

○ From-source-complete

○ From-source-skip-build

○ From-distribution

○ Benchmark-only (对已有的集群进行测试)

自定义 & 分布式测试

● Car

○ https://esrally.readthedocs.io/en/latest/car.html

○ 使用自建的集群

● Track

○ 自带的测试数据集:Nyc_taxis 4.5 G / logging 1.2G

○ 更多的测试数据集: https://github.com/elastic/rally-tracks

● 分布式测试

○ https://esrally.readthedocs.io/en/latest/recipes.html#recipe-distributed-load-driver

实例:比较不同的版本的性能

● 测试

○ esrally race --distribution-version=6.0.0 --track=nyc_taxis --challenge=append-no-conflicts --user-tag="version:6.0.0”

○ esrally race --distribution-version=7.1.0 --track=nyc_taxis --challenge=append-no-conflicts --user-tag="version:7.1.0"

● 比较结果

○ esrally list races

○ esrally compare --baseline=[6.0.0 race] --contender=[7.1.0 race]

实例:比较不同 Mapping 的性能

● 测试

○ esrally race --distribution-version=7.1.0 --track=nyc_taxis --challenge=append-no-conflicts --user-tag="enableSource:true" --include-tasks="type:index”

○ 修改:benchmarks/tracks/default/nyc_taxis/mappings.json,修改 _source.enabled 为 false

○ esrally race --distribution-version=7.1.0 --track=nyc_taxis --challenge=append-no-conflicts --user-tag="enableSource:false" --include-tasks="type:index

● 比较

○ esrally compare --baseline=[enableAll race] --contender=[disableAll race]

实例:测试现有集群的性能

● 测试

○ esrally race --pipeline=benchmark-only --target-hosts=127.0.0.1:9200 --track=geonames -- challenge=append-no-conflicts

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

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

相关文章

正则表达式常用字符

基础正则 ^:开头字符 $:结尾字符 ^$:空行 .:任意一个字符 *:前一个字符连续出现0次或以上 .*:所有 []:括号中的任意一个字符 [a-z] [a-zA-Z0-9] [a-zA-Z0-9] [^]:除括号内以外的字符 扩展正则 |:或 ssh|telnet|http ():表示整体 ^(ssh|telnet|http)^ssh|^telnet|^ht…

4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明

4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明 文章目录 4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明前言1. Ribbon 介绍1.1 LB(Load Balance 负载均衡) 2. Ribbon 原理2.2 Ribbon 机制 3. Spring Cloud Ribbon 实现负载均衡算法-应用实例4. 总结&#x…

Redis 线程模型详解:理解 Redis 高效性能的关键

Redis 是一个开源的高性能键值存储系统,因其卓越的速度和强大的功能被广泛应用于各种场景,如缓存、消息队列和实时数据存储等。Redis 的性能优越不仅归功于其高效的数据结构和内存存储,还源于其独特的线程模型。本文将详细介绍 Redis 的线程模…

vue3【实战】切换全屏【组件封装】FullScreen.vue

效果预览 原理解析 使用 vueUse 里的 useFullscreen() 实现 代码实现 技术方案 vue3 vite UnoCSS vueUse 组件封装 src/components/FullScreen.vue <template><component:is"tag"click"toggle":class"[!isFullscreen ? i-ep:full-sc…

docker:基于Dockerfile镜像制作完整案例

目录 摘要目录结构介绍起始目录package目录target目录sh目录init.sh脚本start.sh脚本stop.sh脚本restart.sh脚本 config目录 步骤1、编写dockerfilescript.sh脚本 2、构件镜像查看镜像 3、保存镜像到本地服务器4、复制镜像文件到指定目录&#xff0c;并执行init.sh脚本5、查看挂…

lua实现雪花算法

lua实现雪花算法 雪花算法介绍组成部分优点缺点 代码示例 雪花算法介绍 雪花算法&#xff08;Snowflake Algorithm&#xff09;是一种用于生成唯一ID的分布式生成算法&#xff0c;最初由Twitter开发。它的主要目的是在分布式系统中生成唯一的、时间有序的ID&#xff0c;这些ID通…

Spring Boot之Spring-devtools热部署

1、导包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope> </dependency>2、添加配置 #开启热部署 spring.devtools.restart.enabledtrue #热…

STM32 | 超声波避障小车

超声波避障小车 一、项目背题 由于超声波测距是一种非接触检测技术&#xff0c;不受光线、被测对象颜色等的影响&#xff0c;较其它仪器更卫生&#xff0c;更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境&#xff0c;具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于…

第6章:TDengine 标签索引和删除数据

TDengine 标签索引和删除数据 目标 掌握标签索引的创建、删除掌握超表、子表创建以及数据删除删除数据 删除数据是 TDengine 提供的根据指定时间段删除指定表或超级表中数据记录的功能,方便用户清理由于设备故障等原因产生的异常数据。 注意:删除数据并不会立即释放该表所…

微澜:用 OceanBase 搭建基于知识图谱的实时资讯流的应用实践

本文作者&#xff1a; 北京深鉴智源科技有限公司架构师 郑荣凯 本文整理自北京深鉴智源科技有限公司架构师郑荣凯&#xff0c;在《深入浅出 OceanBase 第四期》的分享。 知识图谱是一项综合性的系统工程&#xff0c;需要在在各种应用场景中向用户展示经过分页的一度关系。 微…

多轮对话中让AI保持长期记忆的8种优化方式篇

多轮对话中让AI保持长期记忆的8种优化方式篇 一、前言 在基于大模型的 Agent 中&#xff0c;长期记忆的状态维护至关重要&#xff0c;在 OpenAI AI 应用研究主管 Lilian Weng 的博客《基于大模型的 Agent 构成》[1]中&#xff0c;将记忆视为关键的组件之一&#xff0c;下面我…

消息中间件分类

消息中间件&#xff08;Message Middleware&#xff09;是一种在分布式系统中实现跨平台、跨应用通信的软件架构。它基于消息传递机制&#xff0c;允许不同系统、不同编程语言的应用之间进行异步通信。 常见的消息中间件类型包括&#xff1a; 1. JMS&#xff08;Java Message S…

aws-athena查询语句总结

完全归于本人mysql语句小白&#xff0c;是一点也写不出来&#xff0c;故汇总到此 1. cloudtrail ## 查询事件排序 SELECT eventname,eventtime,count(eventname) as num FROM your_athena_tablename where eventtime between 2024-11-10 and 2024-11-11 group by eventname…

Swift的可选绑定(Optional binding)

在Swift中&#xff0c;有一种变量称为可选变量&#xff08;Optional&#xff09;&#xff0c;具体说明见Swift初步入门。这种变量的值可以存在也可以为空&#xff08;nil&#xff09;。在Swift中&#xff0c;可以通过将if语句和赋值语句结合&#xff0c;有条件地展开&#xff0…

关键JavaScript进行表单验证:提升用户体验与数据完整性

关键JavaScript进行表单验证&#xff1a;提升用户体验与数据完整性 在网页开发中&#xff0c;表单验证是确保用户输入有效数据的重要步骤。有效的表单验证不仅可以提高用户体验&#xff0c;还可以减少服务器端处理无效或错误数据的负担。本文将通过一个简单的示例&#xff0c;…

java集合—List常用的方法

Java集合中的List是一种有序的集合&#xff0c;可以通过索引访问元素。以下是List常用的方法&#xff1a; 添加元素&#xff1a; add(E element)&#xff1a;将指定的元素追加到列表的末尾。add(int index, E element)&#xff1a;将指定的元素插入到列表的指定位置。 获取元…

3D Gaussian Splatting 代码层理解之Part3

最后,内容到达了高斯泼溅过程中最有趣的阶段:渲染!这一步可以说是最关键的,因为它决定了模型的真实性。然而,它也可能是最简单的。在本系列的Part 1和Part2,文章演示了如何将 Raw 3D椭球 转换为可渲染的格式,但现在我们实际上必须完成这项工作并渲染到一组固定的像素上。…

【Bluedroid】A2dp初始化流程源码分析

一、概述 Bluedroid是Android系统中用于蓝牙通信的底层协议栈,它支持多种蓝牙协议,包括A2DP(Advanced Audio Distribution Profile,高级音频分发协议)。A2DP主要用于通过蓝牙传输高质量音频,如立体声音乐。以下是Bluedroid中A2DP初始化的基本流程。 1.1. 启动Bluetooth…

Mac上详细配置java开发环境和软件(更新中)

文章目录 概要JDK的配置JDK下载安装配置JDK环境变量文件 Idea的安装Mysql安装和配置Navicat Premium16.1安装安装Vscode安装和配置Maven配置本地仓库配置阿里云私服Idea集成Maven 概要 这里使用的是M3型片 14.6版本的Mac 用到的资源放在网盘 链接: https://pan.baidu.com/s/17…

[⑧5G NR]: PBCH payload生成

本篇博客记录下5G PBCH信道中payload数据的生成方式。PBCH payload一共32个比特&#xff0c;基本结构如下图&#xff1a; 根据SSB PDU中bchPayloadFlag的值有三种方式得到PBCH payload。 bchPayloadFlag 0&#xff1a;全部32比特由MAC层提供。 bchPayloadFlag 1&#xff1a;M…