本文檔提供了建立StarRocks執行個體時的規格規劃及建議,分別針對存算一體版與存算分離版兩種執行個體類型進行詳細說明。
存算一體版
在存算一體版本中,執行個體僅包含前端(FE)和後端(BE)節點。以下將分別對兩者的規格提出建議。
預估BE節點CU數量
在存算一體版本中,BE節點負責實際資料存放區以及計算任務。
預估公式
CU總數 = 掃描資料總行數 / CPU處理能力 / 預期回應時間*QPS(每秒查詢次數)涉及參數說明如下:
掃描資料總行數:每個SQL預期掃描的資料總行數,需注意該資料量並非指單表的總資料量,而僅限於實際需要掃描的資料量。
CPU處理能力:該值會根據不同SQL的複雜度動態變化,通常在1000萬行/秒~10000萬行/秒之間。SQL複雜度越高,處理的行數則越低。
預期回應時間:預期SQL的執行時間,例如,希望SQL在1秒內完成返回。
QPS(Queries Per Second):每秒並發提交的SQL數量,例如每秒30次。
樣本資料
重要公式估算不一定足夠準確,因不同SQL複雜度不同,會產生差異。實際生產環境還需要結合實際業務的壓力測試結果,評估最終所需資源。
掃描資料總行數
SQL複雜度
預估CPU處理能力(行/秒)
預期回應時間(秒)
QPS(每秒查詢次數)
預估所需CU總數
預估BE規格
5000萬行
高
2000萬行
2
50
63
16CU*4個
5000萬行
中
5000萬行
1.5
100
67
16CU*5個
5000萬行
低
10000萬行
1
200
100
32CU*3個
10億行
高
2000萬行
5
20
200
32CU*7個
10億行
中
5000萬行
3
50
333
64CU*6個
10億行
低
10000萬行
1
80
800
64CU*13個
300億行
高
2000萬行
30
10
500
64CU*8個
300億行
中
5000萬行
15
20
800
64CU*13個
300億行
低
10000萬行
15
20
400
64CU*6個
3000億行
高
2000萬行
60
5
2083
64CU*33個
3000億行
中
5000萬行
45
10
2222
64CU*35個
3000億行
低
10000萬行
45
10
1111
64CU*18個
預估BE節點儲存
StarRocks執行個體所需的總儲存空間受未經處理資料大小、資料副本數量以及所採用的資料壓縮演算法的壓縮比影響。
預估公式
所需的總儲存空間 = 未經處理資料大小 * 資料副本數/資料壓縮演算法壓縮比涉及參數說明如下:
未經處理資料大小:單行資料大小 * 總資料行數。
資料副本數:在存算一體架構下,通常設定為3個副本。
資料壓縮演算法壓縮比:目前,StarRocks支援四種資料壓縮演算法,依次為zlib、Zstandard(或 zstd)、LZ4和Snappy(按壓縮比從高到低排列)。這些資料壓縮演算法能夠提供3:1至5:1的壓縮比。
樣本資料
單行資料大小(KB)
行級記錄數
資料副本數
壓縮演算法壓縮比
預估資料大小(GB)
50
100000000
3
3
4,768.37
說明上表僅為建議值,實際生產環境還需要結合實際業務的壓力測試結果,評估最終所需資源。
BE節點磁碟規劃
預估公式如下所示。
單BE節點磁碟總大小 = 總儲存空間 / 磁碟利用率 / BE節點數量涉及參數說明如下:
總儲存空間:前面計算的BE節點的整體儲存數量。
磁碟利用率:通常建議維持在80%,以便預留20%的空間供計算使用。
BE節點數量:基於CU的估算結果確定的BE節點數量。
例如,總儲存空間為4768 GB,磁碟利用率為80%,BE節點數量為11個,則根據預估公式計算4768GB / 80% / 11個 = 541GB,單BE節點磁碟總大小為541 GB。
磁碟數量選擇
磁碟數量的選擇需結合雲端硬碟ESSD的效能狀況及單節點的磁碟總容量。為了實現單盤效能的最佳化,建議按照下表所示的方式對ESSD PL1進行磁碟拆分。
單BE節點磁碟總大小 | 磁碟類型 | 建議磁碟個數 |
<= 500GB | ESSD PL1 | 1塊 |
500GB ~ 1TB | ESSD PL1 | 1~2塊 |
1TB ~ 1.5TB | ESSD PL1 | 2~3塊 |
1.5TB ~ 2TB | ESSD PL1 | 3~4塊 |
2TB ~ 2.5TB | ESSD PL1 | 4~5塊 |
2.5TB ~ 3TB | ESSD PL1 | 5~6塊 |
3TB ~ 3.5TB | ESSD PL1 | 6~7塊 |
3.5TB ~ 4TB | ESSD PL1 | 7~8塊 |
>4TB | ESSD PL1 | 8塊 |
其他ESSD雲端硬碟的效能上限大小,分別為:
ESSD PL0:320 GB時,最大磁碟IO上限。
ESSD PL1:460 GB時,最大磁碟IO上限。
ESSD PL2:1260 GB時,最大磁碟IO上限。
ESSD PL3:7760 GB時,最大磁碟IO上限。
請參考ESSD PL1的磁碟拆分建議,相應地調整其他ESSD類型的磁碟個數,以最佳化效能。
預估FE節點規格
FE節點主要負責中繼資料管理、用戶端串連管理、查詢計劃和查詢調度。
FE規格可按照BE的CU數量進行粗略預估,具體建議如下表所示。FE節點的資料盤通常只需100 GB,如後續儲存空間不足,可再進行單獨擴容。
BE總CU數量 | 情境類型 | FE建議規格 |
< 120CU | 普通情境 | 8CU * 3 |
120CU ~ 1000CU | 普通情境 | 16CU * 3 |
1000CU ~ 3000CU | 普通情境 | 32CU * 3 |
>=3000CU | 普通情境 | 64CU * 3 |
上表僅為建議值,實際生產環境還需要結合實際業務的壓力測試結果,評估最終所需資源。
在高並發點查情境下,建議適當增加前端節點的數量,例如增加至5個。
存算分離版
在存算分離版本中,執行個體僅包含FE和CN節點。
預估CN節點CU數量
可參考存算一體版本中的預估BE節點CU數量。
預估CN節點儲存
CN節點的儲存主要用於快取資料。
預估公式
所需的總儲存空間 = 未經處理資料大小 / 資料壓縮演算法壓縮比 * 熱資料比例涉及參數如下:
未經處理資料大小:單行資料大小 * 總資料行數。
資料壓縮演算法壓縮比:目前,StarRocks支援四種資料壓縮演算法,依次為zlib、Zstandard(或zstd)、LZ4和Snappy(按壓縮比從高到低排列)。這些資料壓縮演算法能夠提供3:1至5:1的壓縮比。
熱資料比例:根據業務情況,可以評估經常查詢的熱資料比例,例如設定為50%。如果對具體比例不確定且期望存算分離的查詢效能能夠盡量滿足需求,則建議將其設定為100%,即一副本的量。由於主鍵索引也會佔用一定的緩衝磁碟空間,建議預留20%的緩衝區,因此整體建議設定為120%。
樣本資料
單行資料大小(KB)
行級記錄數
壓縮演算法壓縮比
熱資料比例
預估資料大小(GB)
50
100000000
3
120%
1,907.35
說明上表僅為建議值,實際生產環境還需要結合實際業務的壓力測試結果,評估最終所需資源。
單CN節點的磁碟大小及磁碟數量,可參考存算一體版本中的BE節點磁碟規劃。
預估FE節點規格
可參考存算一體版本中的預估FE節點規格。