Elasticsearch调整分片大小

时间:2016-09-04 05:05:22

标签: elasticsearch sharding

我是elasticsearch的新手。假设我们有一个双节点集群,并为我们的单个索引配置了2个主分片和一个副本。所以节点1有P0,R1和节点2有P1,R0。现在假设我稍后将副本数量减少到0.然后,分片P0和P1会自动调整大小以占用副本空出的磁盘空间,并允许我有更大的磁盘空间用于索引,然后在我有副本时。

1 个答案:

答案 0 :(得分:1)

副本分片与主分区的空间大致相同,因为它们都包含相同的文档。因此,比如说,您已在索引中索引了100万个文档,然后每个主分片包含大约一半的文档,即500K文档,每个副本也包含相同数量的文档。

如果每个文件的重量为1KB,那么:

  • 主要碎片P0有500K文件,重500MB
  • 复制碎片R0有500K文件,重500MB
  • 主要分片P1具有500K文件,重量为500MB
  • 副本分片R1具有500K文件,重500MB

这意味着您的索引占用节点上2GB的磁盘空间。如果您稍后将副本数量减少到0,那么这将释放主分片能够占用的1GB空间。

但是,请注意,通过这样做,您肯定会获得磁盘空间,但您将不再拥有任何冗余,并且您将无法在两个节点上传播索引,这是复制品背后的主要思想

另一件事是碎片的大小受物理限制的限制,它无法跨越。该限制取决于许多因素,其中包括堆的数量和您拥有的总物理内存。如果你有2GB的堆和50GB的磁盘空间,你不能期望将50GB的数据索引到你的索引中,这将无法工作,或者将非常缓慢和不稳定。

=>因此磁盘空间不应该是调整碎片大小的主要驱动因素。拥有足够的磁盘空间是必要条件,但不是足够的,您还需要look at the RAM and the heap分配给您的ES节点。