【发布时间】:2020-03-04 02:29:13
【问题描述】:
我们有一个应用程序每秒向我们的 ES 集群添加数千个文档。每次我们滚动我们正在写入的索引并开始写入新索引时,我们都会收到以下错误,这些错误不允许在大约 1 分钟内提取文档。 1 分钟后,一切恢复正常,直到我们再次翻转索引。
[WARN ][o.e.c.s.MasterService ] [NODE_NAME_1] took [28.3s], which is over [10s], to compute cluster state update for [put-mapping[_doc, _doc, ...
[DEBUG][o.e.a.a.i.m.p.TransportPutMappingAction] [NODE_NAME_1] failed to put mappings on indices [[[INDEX_1/SOME_ID]]], type [_doc]
org.elasticsearch.cluster.metadata.ProcessClusterEventTimeoutException: failed to process cluster event (put-mapping) within 30s
at org.elasticsearch.cluster.service.MasterService$Batcher.lambda$onTimeout$0(MasterService.java:143) [elasticsearch-7.5.2.jar:7.5.2]
at java.util.ArrayList.forEach(ArrayList.java:1507) [?:?]
at org.elasticsearch.cluster.service.MasterService$Batcher.lambda$onTimeout$1(MasterService.java:142) [elasticsearch-7.5.2.jar:7.5.2]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:703) [elasticsearch-7.5.2.jar:7.5.2]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:830) [?:?]
在第一行中,我将省略号放在末尾,因为它实际上很大,这里是我们所看到的图像(正如您在图像中看到的那样,该行突然结束):
你知道那些错误信息是关于什么的吗?
是否有可能因为我们的集群状态太大而看到这些消息?这是否意味着我们有太多的分片或节点?
谢谢。
注意:
- 我们使用 ElasticSearch 7.5.2
- 我们不使用 ILM,当我说“翻转我们的索引”时,我们所做的是开始写入我们几小时前创建但未使用的新索引。然后我们停止写入旧索引。
【问题讨论】:
-
你有多少分片?
-
我们有大约 30.000 个分片
-
@MondKin,30k 分片在 1 个 ES 节点上,或者在集群中,你的数据节点的堆大小是多少?您的集群中有多少个节点?
-
我们总共有 60 个数据节点,在热温架构中,一些节点有 32GiB 堆,而另一些节点有 16GiB。
-
@MondKin,顺便说一句,很棒的核心 ES 内部问题,喜欢它
标签: elasticsearch