绊脚石乃是进身之阶。

es的并发查询

Elasticsearch | 作者 qianye | 发布于2016年07月09日 | 阅读数:20953

使用es的全文检索功能,doc 2000万左右,对指定的field进行模糊查询,自己写了中文的分词插件,禁用了_all字段。

单节点的时候, 单线程访问耗时基本在200ms以内,但是开启10个线程并发查询的时候耗时基本在1~2秒,es不是号称支持高并发吗,为什么单线程和多线程差距这么大。

按照文档搭建了3个节点的集群,但是并没有发现性能有什么提升,请问我应该如何优化并发查询?
已邀请:

medcl - 今晚打老虎。

赞同来自: laoyang360

@qianye 要优化查询,首先需要优化查询速度,然后再看并发,除了增加节点,还需要增加副本,冗余的副本都能提供查询,这个就是es水平扩展的机制,另外,数据结构mapping与查询条件的使用,以及各个层面的优化都会影响速度的

chennanlcy - elasticsearch爱好者

赞同来自:

节点有几个?分片有几个?备份有几个?查询DSL发出来看下

IFT8

赞同来自:

+1
同样2kw数据,同样,并发上去响应就指数型上升,200ms>40s!!!
cpu load 40% io 20% 求解瓶颈在哪里?@medcl @chennanlcy
8节点,16分片,1备份,单个分片10G 左右,索引300G
{
  "size": 0,
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "created_at": {
              "from": "2016-12-08","to": "2016-12-13"
            }
          }
        },
        {
          "terms": {
            "state": [
              2,
              3,
              4
            ]
          }
        }
      ]
    },
    "aggregations": {
      "aggs": {
        "terms": {
          "field": "c_type",
          "size": 2147483647
        },
        "aggregations": {
          "aggs": {
            "terms": {              "field": "c_id",
              "size": 2147483647
            },
            "aggregations": {
              "aggs": {
                "terms": {
                  "field": "state",
                  "size": 2147483647
                }
              }
            }
          }
        }
      }
    }
  }
}
匿名用户

匿名用户

赞同来自:

这个论坛人气太差了,估计也活不长了

要回复问题请先登录注册