我準備將elasticsearch舊索引遷移到新索引。該索引用作用戶存儲,因此將來的用戶數量將增加。常見的情景 - 從索引中選擇用戶。所以很明顯,更多的用戶 - 搜索過程較慢,因爲彈性需要循環大量文檔數量。如何計算elastcisearch分片數?
假設currentRate
是每秒elasticsearch當前請求速率,currentUserNumber
是在elasticsearch總用戶在現在,currentNumberOfShards
是當前碎片數(假定爲僅2碎片都進入地點理想一個物理節點簡單)。
另外它是已知的預計futureRate
和futureUserNumber
。
因此,它是正確的fomular估計碎片爲elasticsearch的新號碼:
futureNumberOfShards = (futureRate/currentRate) * (futureUserNumber/currentUserNumber)
OT還有,我不計算一些其他的條件?
注意
我明白elasticsearch可以執行一些optimnization,但這樣的條件很難計算外elasticsearch所以它更正確計算碎片的數量爲最壞的情況。
注2
實際上用戶可以具有不同數量的字段。僅用於搜索4-5個字段(並非所有用戶都具有全部)。這會影響搜索性能嗎?如何?