elasticsearch 如何使用急切的全局序号加快刷新速度
我有一个8节点集群(AWS上的8 r3.xlarge使用实例附带的短暂80GB SSD磁盘)。具有一个主索引和两个主索引类型。 它们之间存在父/子关系。有7500万父母和1500万孩子。(我们定期清理孩子,但保留父母) 为了加快has_子查询的速度,我在子字段的父字段上使用了渴望全局序号 使用急切的全局序号似乎会显著降低刷新时间。刷新现在最多需要3秒钟 我相信我可以通过增加机器上的IO来加速刷新。但是有没有其他设置可以让我加快刷新速度 我使用的是elasticsearch 1.4.2 请注意,当我使用8 m3.xlarge和1 EBS容量时,刷新速度更快。(这没有意义,因为EBS卷的IOs应该比临时磁盘慢…)
elasticsearch 如何使用急切的全局序号加快刷新速度,
elasticsearch,
elasticsearch,我有一个8节点集群(AWS上的8 r3.xlarge使用实例附带的短暂80GB SSD磁盘)。具有一个主索引和两个主索引类型。 它们之间存在父/子关系。有7500万父母和1500万孩子。(我们定期清理孩子,但保留父母) 为了加快has_子查询的速度,我在子字段的父字段上使用了渴望全局序号 使用急切的全局序号似乎会显著降低刷新时间。刷新现在最多需要3秒钟 我相信我可以通过增加机器上的IO来加速刷新。但是有没有其他设置可以让我加快刷新速度 我使用的是elasticsearch 1.4.2 请注意,当
谢谢 如果没有任何指标来指出争用可能在哪里,这是很棘手的。你是真的爱我吗?还是计算界?我常常发现我是后者。这可能是您通过比较两个四个核心实例类型得出的结论,但当您使用r3时,其他情况也可能发生变化 以下几点可能会有所帮助:
- 删除合并限制,
。对于SSD,您不需要它,我们只是为了安全起见才将其打开,这样索引就不会占用一个盒子。您可以为每个索引设置它,但如果测试显示它有帮助,并且不会减慢搜索速度,则只需在每个节点的配置中,或者在创建索引时在应用程序中使用它即可index.store.throttle.type:none
- 如果您使用的是Linux,请确保将数据卷的IO调度程序设置为
,或至少设置为noop
。CFQ应该在使用SSD时进行DTRT,但我还没有发现这是真的。此外,在EC2上,您不需要具有虚拟化层的任何存储(理论上)的调度器。请记住,除非您看到写入速度始终保持在60mb/s左右,或者您的计算能力有限,否则这并不会产生真正的影响deadline
- 因为你没有在m3上使用急切加载,它实际上是苹果和桔子。这只是一种预感,但经济放缓可能有点连锁,细分市场正在堆积,只有在索引流量中断时才会恢复。您可以尝试将
增加到index.refresh\u interval
,看看手动刷新是否会加快速度。这很容易用5s
进行监控/\u cat/segments/INDEX | wc-l
- 您可以尝试增加Lucene允许使用的线程数。在四个内核上,您可能没有太多的空间(需要那些CPU图),但您可以做一些测试并检查它
(硬件上默认为4)index.merge.scheduler.max_thread_count:6