StarRocks集群配置計算


為了實現集群高可用,建議集群最低3個節點,FE和BE分開部署也可以混合部署。

單節點配置要求:

  • BE推薦16核64GB內存以上,FE推薦16核64GB內存以上。
  • 磁盤可以使用HDD或者SSD。
  • CPU必須支持AVX2指令集, cat /proc/cpuinfo |grep avx2 確認有輸出即可,如果沒有支持,建議更換機器,StarRocks的向量化技術需要CPU指令集支持才能發揮更好的效果。
  • 網絡需要萬兆網卡和萬兆交換機。

環境支持要求:

  • Linux (Centos 7+)

  • Java 1.8+

假定內存、磁盤都不會拖后腿的情況下,分析/查詢的性能瓶頸在 CPU 的處理能力。所以通過對 CPU 的算力要求,來預估集群的數量。

集群需要的總 CPU 資源:e_core = scan_rows / cal_rows / e_rt * e_qps

變量名 變量含義 樣例
e_core 預計要使用的CPU核數(vCPU)  
vCPU總數(邏輯處理器) = Socket數(CPU個數)x Core數(內核)x Thread數(超線程) 540c  
scan_rows 線上典型場景中的數據掃描量 3000萬
e_qps 預期線上QPS 180qps
e_rt 預期線上響應時間 300ms
cal_rows StarRocks針對SQL場景的計算能力 3000萬/s

場景樣例:

  1. 數據量:事實表一年 3.6億行數據,大約 100萬行/天;

  2. 典型查詢場景:一個月的事實表數據( 3000萬 )和比較小的的維度表(萬級別)做關聯,再進行 group by、sum 等聚合計算;

  3. 期望:響應時間在 300ms 以內,業務的峰值 QPS 達 180 左右。

估算解釋:

  1. StarRocks 的處理能力在“單核 1000萬~1億/秒”,此場景有「多表 join」和「group by」以及一些表達式函數,相對復雜,所以按照「 3000萬/s 的計算能力」估算,需要 3 個 vCPU:3000萬 / 3000萬/s / 300ms = 3c。

  2. 並發峰值為180qps,因此需要 3 * 180 = 540c,即總共需要 540 個 vCPU。按單台物理機48虛擬核(vCPU)算,理論計算大約需要12台物理機。

  3. 實際 POC 過程中,用3台物理機16虛擬核進行壓力測試,能夠在40qps下滿足300-500ms的響應時間。最終,線上確定用7台48虛擬核的物理機。 所以,還是建議用戶要根據實際的業務場景做一下POC測試。

綜上:根據POC的測試結果,建議用戶搭建3個FE節點每個節點16核64GB內存、7個BE節點每個節點48核152GB內存。

其他說明:

  1. 計算業務越復雜、處理中的一行的列數量越多越復雜,每秒能處理的行數就會越少;

  2. 計算中「條件過濾」的效果越好(能過濾掉很多數據),則能處理的行數就會越多(因為內部有一些索引結構,能更快地幫助處理數據);

  3. 不同「表模型」會對處理能力有很大影響,上面是按照「明細模型」估算。其他模型,內部會有一些特殊處理,真實的數據量行數會和用戶理解的數據量行數有一些差異;同時,分區/分桶,也會對查詢性能有很大影響;(我們有其他相關文檔來指導用戶如何使用以達到最佳性能)

  4. 對於一些需要掃描大量數據的場景,磁盤的性能也會影響處理能力。需要時,可以使用SSD來加速。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM