Elasticsearch自定义脚本完成性能测试

1、ES性能测试

要求:
1)完成ES并发100次性能测试;
2)统计得出访问时间结果值。

2、脚本实现

#!/bin/sh

KEYWORDS_TXT="./keywords.txt"
cat /dev/null > ./rst.txt

echo "beginTime=`date`"

cat $KEYWORDS_TXT | while read line
do
echo "line=$line"
echo "curl -XGET http://100.10.11.130:9200/shx_info_index/shx_info_type/_search -d'
{
  \"query\" : {
  \"query_string\" : {
  \"default_field\" : \"company_name\",
  \"query\" : \"$line\"
  }
  }
}' >> ./rst.txt 2>&1 & " >> ./sql.txt

icnt=$((icnt+1));
echo "icnt ="$icnt;
done;

解读:
1)以上脚本实现了对所以的字段的查询操作;
2)每次的操作都是读配置的;
3)未避免读配置的时间,可将整个post请求操作先存储到另一个脚本,再一起执行。

2、技术核心点小结

核心点一:

&的目的:实现并发测试,否则就是串行执行任务。
结果导出再执行即可。

核心点二:

时间差计算如下:
1)开始时间:

current=`date "+%Y-%m-%d %H:%M:%S"`
timeStamp=`date -d "$current" +%s`
beginTimeStamp=$((timeStamp*1000+`date "+%N"`/1000000)) #将current转换为时间戳,精确到毫秒
#echo "beginTime=$currentTimeStamp"
echo "beginTime=`date`"

2)结束时间及时间差(历时时间):

wait
current=`date "+%Y-%m-%d %H:%M:%S"`
timeStamp=`date -d "$current" +%s`
endTimeStamp=$((timeStamp*1000+`date "+%N"`/1000000)) #将current转换为时间戳,精确到毫秒
#echo "endTime=$currentTimeStamp"
echo "endTime=`date`"
timeSpan=`expr $endTimeStamp - $beginTimeStamp` #时间戳求差值。
echo "100次并发测试总耗时=$timeSpan 毫秒"

核心点三:

wait [作业指示或进程号]

1.等待作业号或者进程号制定的进程退出,返回最后一个作业或进程的退出状态状态。如果没有制定参数,则等待所有子进程的退出,其退出状态为0.

2.如果是shell中等待使用wait,则不会等待调用函数中子任务。在函数中使用wait,则只等待函数中启动的后台子任务。

3.在shell中使用wait命令,相当于高级语言里的多线程同步。

2017年5月15日 23:48 于家中床前

作者:铭毅天下
转载请标明出处,原文地址:
http://blog.csdn.net/laoyang360/article/details/72231924
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铭毅天下

和你一起,死磕Elastic!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值