关键词:
一 背景:
之前折腾2天想用es 官网推荐的es压测工具,各种坑,参见我之前的安装过程centos7 安装esrally 踩坑过程_bohu83的博客-CSDN博客_esrally安装
这里面很多参数,主要是读写的速度。
有一点,这是基准的压测,不能很好的模拟线上的同事读写某个比例的情况。
二 loadgen
相对于esrally 只看es的整体指标。loadgen就简单好用多了。
下载,解压,修改loadgen.yml 即可。
下载地址:https://release.infinilabs.com/loadgen/stable/
选择自己合适的版本。解压后
如何修改参数,参见官网:就是设置es的账户,ip, 写body,读的url
读写根据业务实际需要就行。
变量的使用:
面的配置中,variables
用来定义变量参数,根据 name
来设置变量标识,在构造请求的使用 $[[变量名]]
即可访问该变量的值,变量目前支持的类型有:
类型 | 说明 |
---|---|
file | 文件型外部变量参数 |
sequence | 自增数字类型的变量 |
range | 数字范围类型的变量,支持参数 from 和 to 来限制范围 |
uuid | UUID 字符类型的变量 |
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:自由... 查看详情