确定分片数量

主分片

主分片数量在索引创建时确定,之后无法更改。建议根据数据量和集群规模合理设置。

  • 数据量:每个分片建议大小在10GB到50GB之间,过小会导致分片过多,过大则影响性能;

  • 集群规模:分片数量应与集群节点数匹配,确保分片均匀分布。

副本分片

副本分片数量可以动态调整,用于提高读取性能和容错性。

  • 读取性能:增加副本分片可以提升并发读取能力;

  • 容错性:副本分片在主分片故障时提供数据冗余。

确定分片大小

  • 均匀分布:确保分片大小相近,避免某些分片过大或过小;

  • 监控和调整:定期监控分片大小,必要时重新索引以调整分片分布。

节点和分片分布

  • 节点数量:确保集群有足够节点承载所有分片,避免单节点负载过重;

  • 分片分布:使用_cluster/allocation/explain API检查分片分布,确保均匀。

索引生命周期管理(ILM)

  • 热温冷架构:根据数据访问频率,将索引分配到不同性能的节点;

  • 自动管理:使用ILM策略自动管理索引生命周期,如滚动更新和删除旧索引。

示例配置

假设有一个10节点集群,每天生成100GB数据,保留30天:

  • 主分片:每个索引20(100GB÷5GB)个主分片,每个分片约5GB;

  • 副本分片:每个索引1个副本分片,用于容错和读取性能;

  • 总数据量20主分片 + 20副本分片 = 40分片,均匀分布在10个节点上,每个节点约4个分片。