AWS Elasticsearch批量插入延迟急剧增加

时间:2019-09-04 23:50:17

标签: python amazon-web-services elasticsearch

我正在 t2.small节点和10gb EBS卷上使用AWS Elasticsearch。每隔5分钟,我会索引约5000个文档*。对于每个文档,我都手动传递唯一​​ID。由于大多数文档都已更新,因此几乎所有文档都可能有版本2或3

值得一提的是,每天我都会执行delete_by_query操作来删除一周以上的文档。

通常,批量插入的延迟小于1秒。但是今天突然之间,在短短几个小时内进行了两周的测试之后,延迟时间才增加到 3分钟,以便批量插入5000个文档

我正在使用elasticsearch-py和awsauth。

我检查了AWS Cluster运行状况统计信息。自从出现了大容量插入延迟问题以来,旧垃圾回收时间似乎急剧增加。这些之间似乎存在关联。

enter image description here

如何处理此问题?是因为维护文档的多个版本还是使用查询删除功能?

1 个答案:

答案 0 :(得分:1)

这并不奇怪,但是仅仅因为变量太多,很难给您一个完整的答案。要考虑的一些事情:

  1. 重新索引文档非常昂贵,因为它首先涉及到删除
  2. 随着索引变大,执行段合并的开销也会增加
  3. 随着索引变大,维护doc值和全局序号变得越来越昂贵
  4. 您正在运行可爆t2实例,因此可能会耗尽CPU或IO积分
  5. 您没有提及进行优化/强制合并,如果您有很多已删除/过时的文档,这可能会提供帮助