首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算弹性搜索碎片数?

如何计算弹性搜索碎片数?
EN

Stack Overflow用户
提问于 2015-07-22 05:16:48
回答 2查看 1.7K关注 0票数 0

我打算将弹性搜索旧索引迁移到新索引。索引被用作用户存储,因此在未来用户数量将增加。常见的场景是从索引中按文件选择用户。因此,很明显,更多的用户-较慢的搜索过程,因为弹性需要循环的大量文件计数。

假设currentRate是当前每秒对elasticsearch的请求速率,currentUserNumber是当前elasticsearch中的总用户,currentNumberOfShards是当前的碎片数(为了简单起见,假设只有2个碎片被划分为一个物理节点)。

另外,人们也知道预期的futureRatefutureUserNumber

因此,为elasticsearch估计新的碎片数量是否正确:

代码语言:javascript
复制
futureNumberOfShards = (futureRate / currentRate) * (futureUserNumber / currentUserNumber)

没有其他的条件,我不计算?

Note

我知道elasticsearch可以执行一些优化,但是在elasticsearch之外这样的条件很难计算,所以在最坏的情况下计算碎片数更正确。

Note 2

事实上,用户可以有不同数量的字段。对于搜索,只使用4-5个字段(不是所有用户都有)。这会影响搜索性能吗?又是如何做到的?

EN

回答 2

Stack Overflow用户

发布于 2015-07-22 06:53:24

对于elasticsearch来说,最好的性能是当碎片计数相等的数据节点数时。但这使得将来难以增加数据节点的数量。所以你可以选择-现在有更好的性能,或者为未来的节点留出一些空间。在我的集群中--开始时有两个节点,但是我已经做了4个碎片,现在我有了4个数据节点,而且性能非常好。

票数 1
EN

Stack Overflow用户

发布于 2020-10-20 10:46:04

减少3M文档:1在3M和500万文档之间分割,预期增长超过500万:2。5米以上: int (预期文件数/ 5M +1)

您可以在此链接中找到所有内容:

https://thoughts.t37.net/designing-the-perfect-elasticsearch-cluster-the-almost-definitive-guide-e614eabc1a87#9898

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31554365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档