分片设计
-
Es分片水平扩展/rebalancing
创建索引时,为索引设计的分片数,会自动分布在集群的节点上,当节点增加时,es也会自动进行分片的移动,这叫做 shard rebalancing -
多分片的好处:
- 数据写入可以分散到多个机器上
- 查询可以并行进行
- 增加机器,可以no downtime 的水平扩展/分片的重新分配
-
分片的设计与管理——分片是ES存储数据的地方,本质是一个lucene的索引,分片是ES机器实现水平扩展的最小单位,用她来存储数据必然会消耗系统的性能,如果存储的数据过大,则性能必然不佳。
-
分片从存储的物理角度:
- ES官方建议日志应用,单个分片大小最好小于50G
- 搜索类应用,单个分片最好小于20G
- 控制分片大小的原因:
- 提高update的性能
- 减少merge所需的资源
- 丢失节点,更快速的rebalance
副本分片的设计
- 副本是主分片的拷贝
- 副本可以提高系统可用性:查询请求时,防止数据丢失
- 需要占用和主分片一样的资源
- 增加副本分片对性能的影响:
- 会降低写入的速度,写两份,CPU资源消耗
- 会减缓对主分片的查询能力,但是会消耗同样的内存资源
- 在机器资源充分的情况下,提高查询的qps
分片案例优化分析
这里单个索引1.88TB /40分片 正好是 48G ,但是是搜索类的分片,应该改为不超过20G
然后副本分片为0 ,可以增加 副本分片 提高查询的吞吐量