环境准备

  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压测的更多相关文章

  1. ESRally压测ElasticSearch性能 CentOS 7.5 安装 Python3.7

    1,CentOS 7.5 安装 Python3.7 1.安装开发者工具 yum -y groupinstall "Development Tools"2.安装Python编译依赖包 ...

  2. elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)

    一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...

  3. Elasticsearch系列(二)--query、filter、aggregations

    本文基于ES6.4版本,我也是出于学习阶段,对学习内容做个记录,如果文中有错误,请指出. 实验数据: index:book type:novel mappings: { "mappings& ...

  4. Dubbo接口压测

    在每年的双十一大促之前,除了全链路压测,还需要各个业务方对自己业务提供的核心接口进行单接口压测,以评判系统的稳定性和承压能力. 一.准备工作 环境准备:确保应用性能环境(perf)正常可用 压测接口梳 ...

  5. 【MySQL】sysbench压测服务器及结果解读

    主要压测范围包括CPU测试.磁盘IO测试.线程测试.OLTP测试等,那么sysbench就可以满足我们的压测需求.下面我们简单来看下sysbench的安装使用以及压测结果的解读. 一.sysbench ...

  6. 【性能压测】:MQ队列异步处理机制导致的系统无法接受请求的问题

    一,最近压测系统交易峰值时,因该支交易采用MQ异步队列处理机制:该增加积分的交易,前段服务器优先返回给客户增加积分成功的结果,后端的MQ队列服务器再慢慢处理该请求: 二,压测过程中出现的问题现象:前几 ...

  7. 实战jmeter入门压测接口性能

    什么是Jmeter? 是Apache组织开发的基于Java的压力测试工具. 准备工作: 一.安装配置好环境及压测工具 Jmeter下载地址:http://mirrors.tuna.tsinghua.e ...

  8. JMeter——分布式压测

    一.Jmeter4.0分布式压测准备工作 压测注意事项            the firewalls on the systems are turned off or correct ports ...

  9. JMeter在linux上分布式压测步骤(二)

    哈喽,我又来了~ 前提:三台linux虚拟机,一台作为master,另外两台作为slave. 一.server端 1.修改1099端口,client和server通信的端口,可以不修改,默认就是109 ...

随机推荐

  1. Android使用ADB命令和stetho查看app数据库

    一.使用ADB命令查看 打开命令窗口,进入Android SDK目录下的platform-tools,执行命令: 1.输入:在windows下: adb shell 在linux下: ./adb sh ...

  2. ArrayList去除重复元素(包括字符串和自定义对象)

    1.去除重复字符串 package com.online.msym; import java.util.ArrayList; import java.util.Iterator; @SuppressW ...

  3. Python使用心得之魔法参数**kw

    通过设置字典类型参数直接传递给接收魔法参数(**kw)的方法,对应赋值.示例如下: jdbcConnectionDict = {, , 'database': 'test', 'charset': ' ...

  4. java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

    下面是我查询数据库时打印出来的异常信息: ### Error querying database.  Cause: java.sql.SQLException: Value '0000-00-00 0 ...

  5. Java web的几种异常处理 (转)

    一.在servlet容器中处理异常 以下两种方式: 1. 在web.xml定义异常处理  如果没有在web的应用中作异常处理,那么异常就会抛给Servlet容器,应该说此时Servlet容器是处理异常 ...

  6. Yii2高级模板vendor和application非同级目录部署

    上面是Yii2的高级模板,当我们有多个application的时候,这种高级模板可以可以提供很好的扩展性,多个application共用一份YII2框架,默认情况下,框架和application是在同 ...

  7. 老李推荐:第2章1节《MonkeyRunner源码剖析》了解你的测试对象: NotePad应用简介

    老李推荐:第2章1节<MonkeyRunner源码剖析>了解你的测试对象: NotePad应用简介   本书脚本相关的示例常会用到Android SDK自带的NotePad这个应用,所以这 ...

  8. linux XAMPP安装与使用

    linux安装 下载好后考至目录, chmod +x  接安装包 在执行 ./ 接安装包 启动 XAMPP /opt/lampp/lampp start 停止 XAMPP /opt/lampp/lam ...

  9. Wpf之布局

    Wpf之布局 上一章大家有了自己的一个Hello World的wpf程序,今天咱们就一起走进WPF,一起来看看wpF的前台xaml这门语言的魅力. 写过web 的人都知道布局这个概念,在web中布局和 ...

  10. 1135: 零起点学算法42——多组测试数据(求和)IV

    1135: 零起点学算法42--多组测试数据(求和)IV Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted ...