Lindorm搜尋引擎是由多個節點群組成的分布式叢集,在購買服務之前,需要仔細評估叢集的資源容量。為了協助您進行叢集規劃,我們給出一些通用的建議參考。
儲存容量評估
儲存容量評估主要考慮以下幾點:
- 副本數量:預設建議副本為0,搜尋引擎基於分布式共用儲存,節點宕機後,資料可以自動遷移到其它節點上提供服務,對於部分可靠性要求高的情境,可考慮設定副本數量為1。
- 索引資料膨脹:資料一般膨脹在20%。
- 搜尋引擎預留:記錄事務log、週期性compaction資料合併等,建議預留20%。
- 作業系統預留:系統預設預留5%的儲存空間。
- 系統安全閾值:為保障整個叢集的穩定運行,建議預留20%的儲存空間,儲存使用率到80%時會自動觸發簡訊警示。
因此,實際的儲存空間可以通過下面公式估算:
實際空間 = 來源資料 * 1.9
不同的業務情境在寫入和查詢方面的複雜度、比重各有不同,建議先基於儲存容量評估選擇合適的資源,再進行業務測試確認計算資源是否足夠。通常的建議如下:
- 至少選擇2個節點,避免出現單節點故障。
- 建議選擇較高規格的節點,例如選擇16C 64GB的執行個體規格。
- 如果實際測試發現計算資源不符合,擴容時,建議優先進行縱向擴容,例如把節點規格從4C 16GB的規格升級到8C 32GB,然後再考慮橫向擴容增加節點個數。
每個索引被分成多個分區,資料寫入時會基於文檔ID自動雜湊打散到不同的分區中,在設定分區個數時,通常的建議如下:
- 建議單個分區大小保持在20GB~50GB之間。
- 建議分區數量為節點個數的整數倍,例如執行個體有2個節點,則建立的索引分區設定為2。
- 日誌、訂單等有時間屬性的情境,建議使用系統內建的分庫分表(Alias功能),持續滾動產生新的索引,並且周期性刪除舊的索引。