ES压测工具(二):esrally进阶实战

一、esrally压测执行步骤回顾

通过上图可以得知,esrally执行命令的步骤如下:

  • 先判断本地有没有ES6.0.0的实例,如果没有就去下载ES6.0.0的实例
  • 判断本地有没有http_logs的track压测数据集,如果没有就去下载http_logs的track
  • 执行append-no-conflicts的压测方案
  • 生成压测结果

二、自定义集群

1、关键参数

--pipeline:流水线

  • from-distribution:默认的,是指esrally在官方打好的包下载下来,解压运行
  • from-sources-complete:支持从源码本地编译、打包再运行,对于ES开发人员有用 
  • benchmark-only:自定义集群时需要使用的pipeline,只进行压测而不去管理ES实例
  • from-sources-skip-build:与from-sources-complete相互呼应,利用源码方式但是跳过编译、打包

--target-hosts:执行集群的连接地址

--cluster-health:检查集群状态,根据设定的健康状态来判断是否进行压测,默认为Green,可以修改为Yellow

最终命令版本如下:

esrally race --pipeline=benchmark-only --target-hosts=127.0.0.1:9200 --cluster-health=yellow

三、自定义数据集 

1、esrally自带的数据集

可以通过如下命令查看现有的数据集,从而针对自己的情况选择合适的数据集

esrally list tracks

esrally本身自带的数据集:

  • geonames、geopoint:都是和地理位置相关的,如果需要测试ES在地理位置处理的性能可以选用 
  • http_logs:是http_server的,如果要测服务器日志、redis日志、apache日志可以选用
  • ......

2、Track的组成

 2.1、Data的定义

2.2、Challenges定义

一个track.json是可以有多个challenges压测方案的,下面针对challenges压测方案进行介绍

  •  name:压测方案的名称
  • default:如果用户在跑esrally时没有指定challenge的话,那么就跑default为true的challenge压测方案,每次只能跑一个challenge
  • index-settings:相关配置,例如"index.number_of_replicas":0就是不需要副本
  • schedule:具体需要跑的任务
  • operation:操作
  • operation-type:操作类型,上图为bulk(批量写操作),bulk-size为每次写多少条
  • warmup-time-period:ES预热时间
  • clients:并发用户数

3、自定义数据集实践

第一步:在tracks下创建MyTracks/demo_track2文件夹

第二步:获取数据,从esrally文档中下载的allCountry文档,利用下面的代码将其转化为json格式(压测数据准备就绪)

#!encoding=utf-8
import json

cols = (("geonameid", "int", True),
        ("name", "string", True),
        ("asciiname", "string", False),
        ("alternatenames", "string", False),
        ("latitude", "double", True),
        ("longitude", "double", True),
        ("feature_class", "string", False),
        ("feature_code", "string", False),
        ("country_code", "string", True),
        ("cc2", "string", False),
        ("
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值