【发布时间】:2017-07-09 17:12:25
【问题描述】:
我们有一个包含 9 个节点的 Elasticsearch 集群,设置如下:
- Elasticsearch 版本 5.1.2
- 集群中的一个索引
- 主分片存储大小:3GB
- 分片数:5
- 副本数:3
- Node-1、Node-2 和 Node-3 仅限主节点
- Node-4 到 Node-9 仅数据节点
- 映射中没有父子关系
- 每个节点 24 GB 内存,18 核 CPU
- 禁用交换,增加打开文件描述符,12 GB JVM 堆内存
- Nest 客户端“静态”适配器和所有节点 IP 列表
如您所见,我们在节点上过度分配了资源,但在压力测试下,只有一个节点使用了所有可用的搜索线程。正如我所提到的,我们有 18 个内核,根据默认搜索线程限制,我们在每个节点中有 (3*18/2)+1 = 28 个搜索线程。
问题:
- Http 请求不平衡
- 其他节点不使用所有的搜索线程。一个节点使用它的所有线程,它的搜索队列变大了
我们测试过的内容:
- 使用一个协调节点来平衡请求(不变)
我们如何发送请求:
- 我们使用 Elasticsearch 作为搜索引擎,Jmeter 用于对搜索服务进行压力测试。测试服务是使用 Elasticsearch Nest Client 调用 Some SearchTemplates 的 Web 服务
任何想法都值得赞赏。
【问题讨论】:
标签: elasticsearch load elasticsearch-5