推荐一款es轻量级的压测工具(代码片段)

bohu83 bohu83     2022-12-04     771

关键词:

 一 背景:

 之前折腾2天想用es 官网推荐的es压测工具,各种坑,参见我之前的安装过程centos7 安装esrally 踩坑过程_bohu83的博客-CSDN博客_esrally安装

这里面很多参数,主要是读写的速度。

有一点,这是基准的压测,不能很好的模拟线上的同事读写某个比例的情况。

二 loadgen

相对于esrally 只看es的整体指标。loadgen就简单好用多了。

下载,解压,修改loadgen.yml 即可。

下载地址:https://release.infinilabs.com/loadgen/stable/

选择自己合适的版本。解压后

 如何修改参数,参见官网:就是设置es的账户,ip, 写body,读的url

读写根据业务实际需要就行。

性能测试 | INFINI Gateway

变量的使用:

面的配置中,variables 用来定义变量参数,根据 name 来设置变量标识,在构造请求的使用 $[[变量名]] 即可访问该变量的值,变量目前支持的类型有:

类型说明
file文件型外部变量参数
sequence自增数字类型的变量
range数字范围类型的变量,支持参数 from 和 to 来限制范围
uuidUUID 字符类型的变量
now_local当前时间、本地时区
now_utc当前时间、UTC 时区
now_unix当前时间、Unix 时间戳
now_with_format当前时间,支持自定义 format 参数来格式化时间字符串,如:2006-01-02T15:04:05-0700

查询的例子:

配置节点 requests 用来设置 Loadgen 将依次执行的请求,支持固定参数的请求,也可支持模板变量参数化构造请求,以下是一个普通的查询请求:

requests:
  - request:
      method: GET
      basic_auth:
        username: elastic
        password: pass
      url: http://localhost:8000/medcl/_search?q=name:$[[user]]

上面的查询对 medcl 索引进行了查询,并对 name 字段执行一个查询,每次请求的值来自随机变量 user

批量写入(bulk)操作

使用 Loadgen 来模拟 bulk 批量写入也非常简单,在请求体里面配置一条索引操作,然后使用 body_repeat_times 参数来随机参数化复制若干条请求即可完成一批请求的准备,如下:

  - request:
      method: POST
      basic_auth:
        username: test
        password: testtest
      url: http://localhost:8000/_bulk
      body_repeat_times: 1000
      body: " \\"index\\" :  \\"_index\\" : \\"medcl-y4\\",\\"_type\\":\\"doc\\", \\"_id\\" :

启动:

./loadgen-linux-386 -d 120 -c 7

 上面是持续120秒,7个并发的情况。

输出结果:

[Loadgen Client Metrics]
Requests/sec:        3892.07
Request Traffic/sec:    0.00bytes
Total Transfer/sec:    55.84MB
Avg Req Time:        256.932µs
Fastest Request:    860.181µs
Slowest Request:    134.490269ms
Number of Errors:    0
Number of Invalid:    0
Status 200:        467048

[Estimated Server Metrics]
Requests/sec:        3922.53
Transfer/sec:        56.28MB
Avg Req Time:        1.78456ms

这个数据需要结合kibana 监控一起看。

包括读写速率、延迟、cpu\\系统负载大小等。

如果测试服务器充足,可以部署在多个上,一个节点可以部署多个loadgen.改下名字。

分别设定不同的并发,模拟业务读写不同的es索引。

开始用jmeter,不知道是不是我参数设置问题,抗不住这么大的并发jmeter自己先报了OOM 。

开多个情况,每个设置不同的配置,这样更好的模拟线上的不同读写速率,值得推荐。

 

 

你的站点抗压么?推荐一款超方便的开源压测工具(代码片段)

这里是HelloGitHub推出的《讲解开源项目》系列,本期介绍一款标星17.7k纯Go语言实现的HTTP(S)压测工具——vegeta项目地址:https://github.com/tsenart/vegetaVegeta是一款用Go语言编写的多功能HTTP(S)压测工具:安装方便、功能齐全... 查看详情

大并发的压测使用阿里的tps(工具推荐篇)

 前言:      先说下写这篇博客的由来,因双十一来临,作为电商,日活百万的产品是需要做双十一的压测的。根据当前线上qps为3600来计算,双十一的目标翻十倍,qps达到36000,当前的压测结果:1万的... 查看详情

轻量级web压测工具http_load的使用(代码片段)

一、http_load简介基于linux平台的一款针对web服务器的性能压测工具优点:1.基于命令行,简单、易于上手。2.小巧、轻便。缺点:1.仅使用于基于web页面的性能测试。2.测试结果分析有限。二、编译及其安装1.下载源码http_load主页:... 查看详情

golang的压测工具hey(代码片段)

BenchmarkStringJoin1-43000004351ns/op32B/op2allocs/op-4表示4个CPU线程执行;300000表示总共执行了30万次;4531ns/op,表示每次执行耗时4531纳秒;32B/op表示每次执行分配了32字节内存;2allocs/op表示每次执行分配了2次对象https://github.com/rakyll/hey-n... 查看详情

性能工具之jmetertps限制与动态调节(代码片段)

...,JMeter是根据线程数大小来控制压力强弱的,但我们制定的压测目标中的指标往往是TPS,这就给测试人员带来了不便之处,必须一边调整线程数,一边观察TPS达到什么量级了。如,在某个压力下服务容量没有问题,我们希望在不... 查看详情

阿昌教你在数据库的压测过程中,如何360度无死角观察机器性能(代码片段)

阿昌教你数据库的压测过程中,如何360度无死角观察机器性能一、前言之前的文章,我们使用sysbench这个工具非常方便的去对数据库进行压测;那我们如果在压测的同时,查看直接机子的性能情况呢???二... 查看详情

性能压测工具之locust(代码片段)

Locust是一款基于python语言开发的一款新的性能压测工具,它是以协程(比线程还小)的方式运行。先看一张locust运行图:源码如下:#!/usr/bin/envpython#--coding:utf-8--fromlocustimportHttpLocust,TaskSet,taskimportsubprocessimportjsonimporttimeimportrandomim... 查看详情

开发的压测文档能有多小心谨慎~(代码片段)

压测文档一、测试内容二、测试方法三、测试目标四、测试环境五、性能测试结果与分析1、同时发送测试性能截图:2、分开发送请求测试:性能总览:第一组对比测试:线程组配置:旧列表压测性能:聚... 查看详情

mysql:8在数据库的压测过程中,观察机器性能(代码片段)

...f0c;知道发现数据库的QPS和TPS上不去了。注意:在不停的压测获取更高的QPS和TPS时,还要同步对机器性能表 查看详情

python服务器性能测试工具locust使用指南(代码片段)

...,循环取数据梯度增压非http协议压测参考前言locust是一款由python编写的压测工具,可以很好的和python进行结合使用,功能强大。locust文档是英文版的,不利于阅读,本文从文档出发,模拟真实的压测需求... 查看详情

jmeter-----随机生成手机号后8位并去重,来进行注册手机号的压测(代码片段)

  要求:对注册接口进行100000次压测,手机号已126开头,后面的8位数不限  前言:在进行测试中,我们需要对注册接口进行压测100000次,那么就要求手机号码每次填写的不一致,否则手机号使用一次后会出现该手机号码已... 查看详情

性能测试入门:性能测试工具

...的场景也比较简单,不想安装复杂的工具,这种情况下,推荐使用简单的模拟工具进行就可以了。abab即ApacheBench,是apache自带的一款功能强大的测试工具,安装了apache一般就自带了,即httpd(在bin目录下)。ab主要是设计用来测... 查看详情

自己动手,实现一款轻量级http调用工具(代码片段)

点击关注公众号,实用技术文章及时了解来源:juejin.cn/post/6854573219899244551在SpringBoot项目整合Retrofit最佳实践,这才是最优雅的HTTP客户端工具!这篇文章中,我们知道了retrofit-spring-boot-starter的使用方式。本篇... 查看详情

作为dba,你不得不掌握的压测工具

mysqlslap    mysqlslap是MySQL自带的一个用于实现负载性能测试和压力测试的工具。它可以模拟多个客户端对数据库进行施压,并生成报告来了解数据库的性能状况。mysqlslap的运行过程主要分三步:创建库、表,导入数据用于... 查看详情

推荐一款轻量小众却高效免费开源windows热键脚本语言autohotkey(代码片段)

写在前面的话Autohotkey是一款轻量小众但高效免费开源的windows热键脚本语言,游戏操纵、鼠标操作、键盘快捷重定义,快捷短语等等,只有你想不到,没有它做不到,神器中的神器呀,相见恨晚。安装官网下载https://www.autohotkey.co... 查看详情

推荐几款实用的内网穿透工具(代码片段)

一、nps-npc1、简介nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……... 查看详情

推荐几款实用的内网穿透工具(代码片段)

一、nps-npc1、简介nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……... 查看详情

《hellogithub》第85期(代码片段)

...生兴趣!以下为本期内容|每个月28号更新C项目1、dperf:一款能模拟巨大流量的压测工具。该项目是基于DPDK开发的高性能压测工具,能够每秒建立千万级的HTTP连接、亿级别的并发请求和数百Gbps的吞吐量。2、ExplorerPatcher:自由... 查看详情