【发布时间】:2016-02-17 17:37:08
【问题描述】:
我很好奇#shards 在 Elasticsearch 中的影响。特别是,我正在寻找拥有大#shards 和小#shards 的利弊。
例如,我有一个双节点集群。假设副本是一个,对于一个索引,我应该创建两个分布在这两个节点上的分片吗?还是应该使用默认值,即 5 个分片?我的想法是第一个。
在我看来,每个索引的每个节点都没有理由超过一个共享,因为一个 Lucene 实例可以比几个 Lucene 实例有更好的缓存。
编辑: 假设我只有一个节点并且想要创建一个索引。在这种情况下,分片数如何影响性能?我的想法是在这种情况下我应该只有一个分片。对吗?
【问题讨论】:
-
将一个索引分成多个分片可以使用多台机器和cpu,以及磁盘空间,我想这是为了扩大规模。
-
我强烈建议你看看这个很棒的答案:stackoverflow.com/questions/15694724/…
-
@Val 感谢您将我指向该线程。我完全了解分片和副本的概念。我不清楚的是,如果我只有一台机器,那么拥有 5 个分片是否有意义。或者让我换一种说法:#shards 比 #machines 多有意义吗?
-
我明白,但是,真正的答案将取决于您想要索引多少数据以及硬件在您的机器上的外观。为了给你一个真正的答案,这是两个重要的变量。但是,是的,每个节点每个索引一个分片在概念上可以。
-
这是 SignalFx 的 good article,解释了他们如何处理分片。
标签: elasticsearch lucene