es随想二

一、es运行状态的监控

  es长时间批量入库时,需要对入库的性能进行监控,否则可能导致es重启,入库任务失败。

     可以编写shell脚本,每分钟用cat命令监控pending的数量,数量逐渐增大时就需要注意。

     还可以监控translog文件的大小,当translog文件不断增大,而不新建新的translog时,也说明输入的文档速度超过了处理速度。

     监控es运行状况的脚本moitorES.sh:  

result=""
while [ "$result"!="0000" ]
do
#阻塞任务统计 
   result=`curl -s -XGET 'http://27.10.3.170:9200/_cluster/pending_tasks'`
   date >>./esMonitorlog.txt
   echo "pending task: "$result >>./esMonitorlog.txt
#获取索引中的记录数
   result=`curl -s -XGET 'http://27.10.3.170:9200/_cat/count/base_person_es`'
   echo "index file count: "$result >>./esMonitorlog.txt
#获取bulk操作线程池状态
    result=`curl -s -XGET 'http://27.10.3.170:9200/_cat/thread_pool?v&h=id,host,active,bulk.active,bulk.size,bulk.queue,bulk.reject,bulk.completed`'
    echo $result  >>./esMonitorlog.txt
#ping主节点
  ping -w 3 -c 2 27.10.3.170 |sed -n '2,3p' >>./esMonitorlog.txt
  echo "----------------------------------" >>./esMonitorlog.txt
  sleep 3
done
  

二、es的配置文件yml中,空格后面一定要有空格,否则启动时报错。

     如: master = true

三、监控网络状况,网络不好时客户端5s内收不到相应主动断开连接,可以设置为20s。

四、ES默认的内存为Xms1g,Xmx4g,这些在实际服务器中是需要调整的。

      bin目录中的进行设置,Xms和Xmx设置大小相等。机器内存小于64g时,es内存为机器内存一半。es机器内存不要超过32g,这也是jvm设置的建议。

      例如机器为128g内存,可以开2个32g的es节点。

五、不要用kill -9来杀死es进程,es属于磁盘读写较多的程序,使用kill而非kill -9。

      windows下的es使用ctrl+c来结束进程,而不要直接关闭窗口。都会导致文件,数据的丢失。

原文地址:https://www.cnblogs.com/lnlvinso/p/6403657.html