使用Jmeter实现对Elasticsearch的查询性能测试
一、安装与使用
1、Jmeter下载地址:
https://jmeter.apache.org/download_jmeter.cgi
2、安装
下载后解压,并配置Jmeter环境变量,且依赖jdk
3、启动
进入bin目录,找到jmeter.bat,启动
4、常用配置
(1)汉化:Options->Choose Language
(2)查看运行日志:选项->日志查看,并可设置日志级别
二、ES查询性能测试
1、新建线程组
属性介绍:
(1)线程数:模拟用户数量
(2)Ramp-up 时间:达到指定线程数量所需要的时间,假如线程数为100,时间为10s,那就相当于10s内加载100个线程,每秒启动的线程数=100/10=10;
(3)循环次数:表面意思为循环的次数,实际循环启动的时间与第一次启动的时间基本相同,假如循环次数设置为2,以(2)中为例,则在10s内会再启动100个线程,实际每秒启动的线程数为100*2/10=20。
2、新建CSV导入配置
通过CSV可导入相应的数据,如es hosts或查询条件,通过调用参数完成相应的配置。
CSV样例,第一列为es节点ip,第二列为查询条件(手机号)
3、新建HTTP信息头管理器
这里需要配置一下Content-type,否则在测试es时异常为100%。
4、新建HTTP请求
配置相关参数,es_index为索引名
5、新建汇总报告等
通过监听器可创建汇总报告、聚合报告、结果树等,方便观察
6、开始测试
上述配置完成后,点击运行,就可以观察测试结果了
以下是几个测试结果,可通过kibana观察相应索引的请求数
注:实现请求数跟客户端性能有一定关系,当达到一定峰值,可能客户端无法实际模拟相应的请求数。
如下为1000个线程,时间为0s(同时请求),相当于1000并发,测试4次,实际效果如图
同时,由图可见,查询请求过多会影响实时的写入
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构