首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不平衡弹性搜索性能

不平衡弹性搜索性能
EN

Stack Overflow用户
提问于 2017-07-08 18:39:00
回答 1查看 1.1K关注 0票数 0

我们有一个具有9个节点的Elasticsearch集群,具有以下设置:

  • Elasticsearch版本5.1.2
  • 集群中的一个索引
  • 主碎片存储大小: 3GB
  • 碎片数:5
  • 复制数量:3
  • 节点-1、节点-2和节点-3主节点
  • 节点-4到节点-9数据仅限于节点
  • 映射中没有亲子关系
  • 每个节点24 GB的Ram,18核的CPU。
  • 禁用交换,增加开放文件描述符,12 GB JVM堆内存
  • 嵌套客户端“静态”适配器和所有节点IP的列表

正如您所看到的,我们在节点上分配了过多的资源,但是在压力测试下,只有一个节点使用它所有可用的搜索线程。正如我提到的,我们有18个核心,根据默认的搜索线程限制,每个节点中有(3* 18 /2)+1 =28个搜索线程。

问题:

  • Http请求不是平衡的
  • 其他节点并不使用它们的所有搜索线程。一个节点使用它的所有线程,它的搜索队列获得大的

我们测试的内容:

  • 使用一个协调器节点来平衡请求(没有更改) 我们如何发送请求:
  • 我们使用Elasticsearch作为搜索引擎,并使用Jmeter对搜索服务进行压力测试。测试服务是使用SearchTemplates调用某些Elasticsearch Nest客户端的web服务。

任何想法都会受到赞赏。

EN

回答 1

Stack Overflow用户

发布于 2017-07-09 09:12:25

读一读https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/connection-pooling.html

看起来您使用的是SingleNodeConnectionPool (在使用低仪式ElasticClient时使用的),即在本例中使用var client = new ElasticClient(uri);,所有请求都将发送到一个节点,该节点需要充当此处描述的Coordinator node

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html

例如,搜索请求在两个阶段执行,由接收客户端请求 - 的节点协调。 在散射阶段,协调节点将请求转发给保存数据的数据节点。每个数据节点在本地执行请求,并将其结果返回给协调节点。在集合阶段,协调节点将每个数据节点的结果缩减为一个全局结果集。 每个节点都是隐式的协调节点。这意味着,将所有三个node.master、node.data和node.ingest都设置为false的节点只能充当协调节点,不能禁用该节点。因此,这样的节点需要有足够的内存和CPU来处理聚集阶段。

对于集群来说,StaticConnectionPoolSniffingConnectionPool将是一个更好的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44989577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档