Elasticsearch文档在大容量插入时被丢弃



我有以下情况:带有JDBC输入连接器和Elasticsearch输出连接器的Logstash。数据最初加载到ES中,这意味着在加载Logstash之前不存在填充的索引。Logstash基于映射模板创建索引。Logstash和ES的版本为7.17.0。

直到最近,这种情况还很好。

问题

索引工作非常好,直到大约100万个文档。然后,新文档的索引速度迅速放缓,删除文档的数量急剧波动。它增加了很多,而且经常下降。

我知道文档是作为更新操作的一部分被删除的,以前已经是这样了。但被删除的文件数量大多在增加,并没有出现如此大的波动。在问题发生之前,加载结束时的情况约为800万个docs.count和300万个docs.deleted。目前,该数字保持在120万左右。

该场景部署在两个环境中,其中只有一个环境显示了这种行为。两者都具有相同的源和Logstash配置。环境因其ES实例而异。两个实例的配置相同。

磁盘空间良好,ES日志中没有错误。我还可以确认Logstash运行良好,并不断向ES发送批量请求。

在另一个帖子中,有人提到ES在过载场景中丢弃文档。我找不到任何证据证明这种行为,但这至少是对我所经历的一个很好的解释:插入后,Elasticsearch中的文档将自动删除

度量的时间序列

TIME 1230:
health status index                     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   myindex                   LLC8qxSWTWyO1U25Olljlg   1   1    1182676       166056    642.3mb        642.3mb
TIME 1240:
health status index                     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   myindex                   LLC8qxSWTWyO1U25Olljlg   1   1    1182676       533339    946.9mb        946.9mb
TIME 1300:
health status index                     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   myindex                   LLC8qxSWTWyO1U25Olljlg   1   1    1182676       349747    701.9mb        701.9mb
TIME 1400:
health status index                     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   myindex                   LLC8qxSWTWyO1U25Olljlg   1   1    1182678       467651        1gb            1gb
TIME 1430:
health status index                     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   myindex                   LLC8qxSWTWyO1U25Olljlg   1   1    1182678       693906        1gb            1gb

事实上,在详细分析了Logstash之后,我们意识到Logstash由于某种原因没有更新它的元数据,因此它在无休止的循环中发送相同的数据。ES工作得非常好,这也解释了振荡删除的文档。

这似乎是一个网络问题,我们需要进一步调查。

相关内容

  • 没有找到相关文章

最新更新