观察elastic search集群的写入速度

​ 最近发现向es集群写数据需要很长的耗时,感觉应该是集群扛不住了,所以想观察一下es目前的写入速度,结果发现这玩意还这么不好看,所以写下此文,分享一下


1. 写入速度检测思路

es集群没有直接提供相应的接口查询集群写入速度,所以就要曲线救国,我目前采用的思路是,每两秒记录一下当前集群的文档总数,然后计算平均每秒写入速度的方法

其脚本如下

#!/bin/bash

ES_HOST='192.168.20.168:9200'
ES_DOC_COUNT_REQUEST="curl -s -XGET $ES_HOST/_cat/count/"

eval `$ES_DOC_COUNT_REQUEST | awk '{ printf("time=%s; VAR2=%s", $2, $3) }'`
last_doc=$VAR2
last_time=$(date -d "$time" +%s)


for ((i=1; i<=20; i++))
do
    sleep 2s
    eval `$ES_DOC_COUNT_REQUEST | awk '{ printf("time=%s; VAR2=%s", $2, $3) }'`
    current_doc=$(($VAR2-$last_doc))
    current_time=$(($(date -d "$time" +%s)-$last_time))

    last_doc=$VAR2
    last_time=$(date -d "$time" +%s)

    witer_per_second=$(($current_doc / $current_time))
    echo write per second $witer_per_second 
done

其中ES_HOST为es集群地址,自行修改直接运行即可

2. 更全面的es集群监控手段

我现在只是需要看写入速度来排查问题,一般的话,我们需要对es整个集群的运行状况有个全面的检测,要做成这样,自然不能自己造轮子了,es也提供了类似的功能支持,就是x-pack + kibana来实现监控,等有时间搞起来以后,再来分享搭建过程~

猜你喜欢

转载自blog.csdn.net/lvqinglou/article/details/114587419