ElasticSearch - 将readonly设置为索引可以提高性能吗?

时间:2016-02-22 20:13:58

标签: performance indexing elasticsearch buffer

我有这种情况,系统每天在节点内生成一个索引。每个索引都有1个主分片。

因此,一天内索引的所有文档都会转到某个索引,并在一天过后,创建一个新索引。

我保留了过去60天的索引(所以这意味着我在节点中总是有60个分片)。我无法关闭旧索引,因为我希望它们支持搜索。在过了第60天之后,我删除了它们。

当我阅读以下article时,我注意到了有关索引缓冲区的内容:

  

默认为10%,这意味着分配给节点的总内存的10%将用作索引缓冲区大小。然后在所有不同的分片之间划分该数量

这意味着对于当天的索引,我有10%/ 60的缓冲区索引内存。所以我并没有真正使用10%。

问题是,如果我set to read only the older indices:

会发生什么
  

index.blocks.read_only   设置为true以使索引和索引元数据只读,false设置为允许写入和元数据更改。

我会看到这样做的好处吗?就像在我唯一的可写索引中拥有整个10%的索引缓冲区一样?或者是对其他索引的搜索有所改进,因为它们只能被分段合并,因为它们不再接收写入?

谢谢!

巴勃罗

PD:我正在使用ElasticSearch 1.7.3,但我期待将来迁移到2.2。我想知道,如果可能的话,如果我有一个好处,如果这将转化为2.2

1 个答案:

答案 0 :(得分:1)

不,您无法通过添加read_only块获得好处。释放缓冲区的唯一方法是完全关闭索引。

此外,您可能有兴趣了解https://github.com/elastic/elasticsearch/pull/14121,它可以提供"积极索引"分割缓冲区的更大份额。进入Elasticsearch 5.0。