elasticsearch系列(二) esrally压测
环境准备
linux centOS(工作环境)
python3.4及以上
pip3
JDK8
git1.9及以上
gradle2.13及以上
准备过程中的坑
这些环境准备没什么太大问题,都是wget下来安装就行,唯一有一个python3安装的坑。
由于本人安装的是python3.6.1,pip3和setupTools都是集成在python安装包里的,比python2时代方便许多,当一切都井井有条后,pip3 install esrally,报出如下错误
Could not fetch URL https://pypi.python.org/simple/esrally/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. – skipping
这是因为pip3默认采用https协议获取资源,而ssl模块有点问题,最后找到的解决方法
1.治标
通过在~/.pip/pip.conf文件中加入
trusted-host = 你要信任的url
不采用https协议获取资源
2.治本
把当前的openssl-devel卸载了,然后重新安装一个
yum remove openssl-devel
yum install openssl-devel
在python3.6中的/Modules/Setup 修改了启动配置
#修改结果如下:
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
然后重新编译
esrally使用
通过esrally configure配置,根据提示来就行,如下图所示

使用本地es集群测试
--pipeline=benchmark-only
去es官网下载
--pipeline=from-distribution
测试数据集,默认是geonames
--track=geonames
使用离线的数据集
--offline
常用命令组合
//第一次压测需要从远端下载数据集
esrally --pipeline=benchmark-only --target-hosts=host:9200 --distribution-version=5.2.2(本人用的5.2.2)
//之后数据集不变的话,直接使用本地数据集
esrally --pipeline=benchmark-only --target-hosts=host:9200 --distribution-version=5.2.2 --offline
注意
es集群必须处理green状态,否则会被禁止race
默认的压测数据的压测配置在 /root/.rally/benchmarks/tracks/default/geonames/track.json
默认压测的内容比较多,可以自定义压测内容,比如数据导入,数据搜索,统计搜索等,都是些es支持的命令
也有类似jmeter的压测配置,比如并发量,迭代次数,额定吞吐量,调度时间等
下图是esrally的压测的部分结果

总结
esrally是官方做压测的开源工具,权威程度不言而喻,但是有点复杂,相当于又学了一个部署复杂版的jmeter。所以如果单单只是想测试ES搜索性能的话,建议使用jmeter。
参考资料
//官网的rally教程
https://esrally.readthedocs.io/en/latest/
//官网的rally教程,关于压测内容的详细说明
http://esrally.readthedocs.io/en/0.5.3/track.html#search
//网友对rally的总结
http://m.blog.csdn.net/article/details?id=56291834
elasticsearch系列(二) esrally压测的更多相关文章
- ESRally压测ElasticSearch性能 CentOS 7.5 安装 Python3.7
1,CentOS 7.5 安装 Python3.7 1.安装开发者工具 yum -y groupinstall "Development Tools"2.安装Python编译依赖包 ...
- elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)
一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...
- Elasticsearch系列(二)--query、filter、aggregations
本文基于ES6.4版本,我也是出于学习阶段,对学习内容做个记录,如果文中有错误,请指出. 实验数据: index:book type:novel mappings: { "mappings& ...
- Dubbo接口压测
在每年的双十一大促之前,除了全链路压测,还需要各个业务方对自己业务提供的核心接口进行单接口压测,以评判系统的稳定性和承压能力. 一.准备工作 环境准备:确保应用性能环境(perf)正常可用 压测接口梳 ...
- 【MySQL】sysbench压测服务器及结果解读
主要压测范围包括CPU测试.磁盘IO测试.线程测试.OLTP测试等,那么sysbench就可以满足我们的压测需求.下面我们简单来看下sysbench的安装使用以及压测结果的解读. 一.sysbench ...
- 【性能压测】:MQ队列异步处理机制导致的系统无法接受请求的问题
一,最近压测系统交易峰值时,因该支交易采用MQ异步队列处理机制:该增加积分的交易,前段服务器优先返回给客户增加积分成功的结果,后端的MQ队列服务器再慢慢处理该请求: 二,压测过程中出现的问题现象:前几 ...
- 实战jmeter入门压测接口性能
什么是Jmeter? 是Apache组织开发的基于Java的压力测试工具. 准备工作: 一.安装配置好环境及压测工具 Jmeter下载地址:http://mirrors.tuna.tsinghua.e ...
- JMeter——分布式压测
一.Jmeter4.0分布式压测准备工作 压测注意事项 the firewalls on the systems are turned off or correct ports ...
- JMeter在linux上分布式压测步骤(二)
哈喽,我又来了~ 前提:三台linux虚拟机,一台作为master,另外两台作为slave. 一.server端 1.修改1099端口,client和server通信的端口,可以不修改,默认就是109 ...
随机推荐
- (转)Uploadify 3.2 参数属性、事件、方法函数详解
转自http://blog.sina.com.cn/s/blog_5079086b0101fkmh.html Hallelujah博客 一.属性 属性名称 默认值 说明 auto true 设置为tr ...
- iOS开发之JSON解析
JSON解析步骤: - (NSArray *)products { if (_products == nil) { //第一步:获取JSON文件的路径: NSString *path = [[NSBu ...
- BrowserSync的安装和使用
BrowserSync真是前端必备神器,浏览器同步工具.简单来说就是当你保存文件的同时浏览器自动刷新网页,省去了手动的环节,大大的节省了开发时间,这个工具是基于nodejs的,可以通过npm安装,不在 ...
- PAT乙级练习1001
1001. 害死人不偿命的(3n+1)猜想 (15) 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去, ...
- 老李分享:loadrunner 的86401错误
老李分享:loadrunner 的86401错误 系统和软件配置: os:windows 2003loadruner版本:LoadRunner11loadrunner:协议:SMTP协议并发数:2 ...
- 老李推荐:第1章3节《MonkeyRunner源码剖析》概述:架构
老李推荐:第1章3节<MonkeyRunner源码剖析>概述:架构 原理架构 MonkeyRunner使用起来非常的简单,只需要导入以下几个类基本上就能满足测试脚本编写的需求,比如: ...
- Hybris license过期的解决办法
license过期编译是可以通过的,但是启动服务会报错: LICENSE VERIFICATION HAS FAILED! Your demo/develop license has expired, ...
- angular directive
1.restrict (字符串)可选参数,指明指令在DOM里面以什么形式被声明: 取值有:E(元素),A(属性),C(类),M(注释),其中默认值为A: E(元素):<directiveName ...
- 深入理解MVC
首先我们来看看MVC架构的示意图: 和访问者交互的是控制层(Controller层),控制器(controller)是同类交互的集合,每一个交互的操作,都对应了一个动作(act ...
- NSString 为什么要使用copy,而不是retain
NSString 为什么要使用copy,而不是retain1.首先如果使用retain,只是引用计数+1,并没有生成新的对象,所以效率好2.但是使用copy安全.因为NSString 为 NSMuta ...