我们有一个包含9个节点的Elasticsearch集群,其中包含以下设置:
如您所见,我们在节点上有过多的资源分配,但在压力测试下,只有一个节点使用所有可用的搜索线程。正如我所提到的,我们有18个核心,根据默认搜索线程限制,我们在每个节点中有(3 * 18/2)+1 = 28个搜索线程。
问题:
我们测试的内容:
- 使用一个协调节点来平衡请求(无变化)
我们如何发送请求:
- 我们使用Elasticsearch作为搜索引擎,Jmeter
用于对搜索服务进行压力测试。测试服务是使用Elasticsearch Nest Client
任何想法都表示赞赏。
答案 0 :(得分:0)
阅读 https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/connection-pooling.html
看起来您使用的是-O2 -fno-full-laziness
,当您使用低级别<?php echo date('Y-m-d H:i:s', strtotime($date));?>
时使用{
SingleNodeConnectionPool
在这种情况下,您的所有请求都将发送到一个节点,该节点需要充当此处所述的ElasticClient
:
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html
例如,搜索请求分两个阶段执行 由接收客户端请求的节点协调 - 协调节点。
在分散阶段,协调节点将请求转发给 保存数据的数据节点。每个数据节点执行 请求本地并将其结果返回给协调节点。在 在收集阶段,协调节点减少每个数据节点 将结果转换为单个全局结果集。
每个节点都隐式地是一个协调节点。这意味着一个节点 将所有三个node.master,node.data和node.ingest设置为false 将仅作为协调节点,无法禁用。作为一个 结果,这样的节点需要有足够的内存和CPU才能 处理聚集阶段。
var client = new ElasticClient(uri);
或Coordinator node
对您的群集来说是更好的选择。