美文网首页
ES建索引突然变的超级慢

ES建索引突然变的超级慢

作者: 明翼 | 来源:发表于2018-08-25 11:30 被阅读402次

背景

昨天周五的时候,突然发现Es的建索引插件,执行后没有返回,后来等待好久,才返回,整个建索引耗时70多秒,平时都是2万+/秒,差异太大了,简直就算是无法工作。

目前环境是这样子:es 6.3.1 版本,一共 36个主机,72个节点即一个主机上部署两个节点,这是我们另外一套的es集群。

找问题

1)首先怀疑是集群问题,去查了下集群,绿色的正常。
2)功能验证:新建个测试的index,没问题,插入数据正常。
4)各种网络ping、telnet测试,ok的,网络没问题。
5)日志检查,客户端没有报错,服务器端有日志:

stop throttling indexing: numMergesInFlight=5, maxNumMerges=6 

这种问题是因为段合并的速度敢不上建索引的速度引起的,不过我看了下时间对不上。
在此吐槽下,es6.3.1 怎么无法更改合并段的最大速率限制,如果更改不了那么段合并慢的话,还怎么提升建索引性能,还不能不合并,有知道方法的告知。
后面还有个错误:

java.nio.channels.ClosedChannelException: null
        at io.netty.channel.AbstractChannel$AbstractUnsafe.write(...)(Unknown Source) ~[?:?] 

看起来就是es服务器端发送客户端的时候抛异常了,我怀疑是超时被客户端断开了,本来想改超时参数的,查了半天也没找到,放弃。

6)我在想肯定有一台主机或一个节点造成的影响整个集群慢,但是没有好的办法找到。
7)实在是没招了,遂叫维护的同事重启,结果半天有shard没有分配,去那台主机看了下,好像io挺严重,去索引目录看最新时间的索引目录(同事这招厉害),进入到index目录底下,ls卡死,基本判定是磁盘坏了,后面主机都无法登陆了。

至于上面建索引只索引没问题,是因为我建的索引用默认的shard,没有达到一个分配一个shard,这样刚好错过了有问题的主机造成的,以后测试还是多少个节点建多少个shard,可以准确测试出哪里有问题。

相关文章

  • ES建索引突然变的超级慢

    背景 昨天周五的时候,突然发现Es的建索引插件,执行后没有返回,后来等待好久,才返回,整个建索引耗时70多秒,平时...

  • Elasticsearch 7 : 自定义 mapping 和

    ES 7 中在创建索引时指定 Mapping ES 7 中先建索引,再自定义 mapping ES 7 建索引时指...

  • 【MySQL】为什么SQL会这么慢

    建表 插入数据 1、索引 sql执行慢,第一想法就是加个索引呗。但有时尽管加了索引了,为什么执行还是这么慢的呢。这...

  • Mysql

    索引(一般监控到慢SQL,才会建索引) 前缀索引 常见索引误区 多列联合索引 左前缀例子(是一种联合索引的匹配规则...

  • spark 读取 ES(es.resource配置)

    es.resource 可配置为: ES 别名 单个索引名/doc_type 索引1,索引2,索引3

  • [转]MySQL索引优化分析

    为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引...

  • MySQL索引优化分析

    MySQL索引优化分析 为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降...

  • ElasticSearch的基本操作

    操作ES的RESTful语法 索引的操作 1、创建一个索引 2、查看一个索引 3、删除一个索引 3.4 ES中Fi...

  • ElasticSearch 批量处理 API

    es里面提供了两种批量建索引的方法:1,使用 Bulk Api 特点是:使用比较简单,但控制不够灵...

  • ES 相关语句

    ES: 查看索引 添加 创建索引 创建类型 查询

网友评论

      本文标题:ES建索引突然变的超级慢

      本文链接:https://www.haomeiwen.com/subject/winwiftx.html