分片設計
-
Es分片水平擴展/rebalancing
創建索引時,爲索引設計的分片數,會自動分佈在集羣的節點上,當節點增加時,es也會自動進行分片的移動,這叫做 shard rebalancing -
多分片的好處:
- 數據寫入可以分散到多個機器上
- 查詢可以並行進行
- 增加機器,可以no downtime 的水平擴展/分片的重新分配
-
分片的設計與管理——分片是ES存儲數據的地方,本質是一個lucene的索引,分片是ES機器實現水平擴展的最小單位,用她來存儲數據必然會消耗系統的性能,如果存儲的數據過大,則性能必然不佳。
-
分片從存儲的物理角度:
- ES官方建議日誌應用,單個分片大小最好小於50G
- 搜索類應用,單個分片最好小於20G
- 控制分片大小的原因:
- 提高update的性能
- 減少merge所需的資源
- 丟失節點,更快速的rebalance
副本分片的設計
- 副本是主分片的拷貝
- 副本可以提高系統可用性:查詢請求時,防止數據丟失
- 需要佔用和主分片一樣的資源
- 增加副本分片對性能的影響:
- 會降低寫入的速度,寫兩份,CPU資源消耗
- 會減緩對主分片的查詢能力,但是會消耗同樣的內存資源
- 在機器資源充分的情況下,提高查詢的qps
分片案例優化分析
這裏單個索引1.88TB /40分片 正好是 48G ,但是是搜索類的分片,應該改爲不超過20G
然後副本分片爲0 ,可以增加 副本分片 提高查詢的吞吐量