全部產品
Search
文件中心

Hologres:執行個體管理

更新時間:Dec 19, 2024

Hologres不同的執行個體規格定義了不同的Core和記憶體資源,由於計算和儲存分離架構,儲存資源與執行個體規格不相關。本文將為您介紹執行個體的資源規格,您可以根據需要動態調整執行個體的規格,包括升配、降配,獨立修改計算和儲存資源。

基本概念

Hologres運行時的資源套件括用於中繼資料管理的進程資源、用於查詢服務的計算資源、用於最佳化資料寫入的匯入鏈路資源以及快取服務。所有服務雲端式原生容器技術,通過多個並行的容器計算節點實現高效能並行計算能力。

Hologres基於執行個體的資源規格提供預設的最大串連數和預分配的Shard數,這些參數是針對大多數情境,經過調校和最佳化的預設配置。其中,最大串連數不可修改,Shard數可通過建立新的Table Group調整。系統擴容或者縮容時,最大串連數同時調整,但擴縮容之前的DB預設Shard數不調整,需要手動修改,建立的DB其Shard數為對應規格的預設值

在擴容後,更多的Core資源可以提供更好的查詢並發能力,大多數使用情境不需要調整Shard數。當您需要更大的寫入能力時,可以擴大Shard數,提高並發寫入的輸送量,但對於OLAP類型的查詢,增大Shard數並不會明顯改善查詢效能,甚至會降低系統的並發吞吐,建議瞭解原理後再調整。同時,行存表由於天然的分布特性,Shard的個數越多,其讀取效能會更高。

執行個體規格推薦

每個Shard負責著一部分資料的讀寫服務要求,在同一個Table Group裡,每個表的一部分資料分發到同一個Shard上,這些表之間如果可以在Shard內關聯,我們稱之為Local Join,是效率更高的關聯方法。如果資料不在同一個Shard內,則需要通過Redistribution運算元,實現資料的Shuffle交換,會有更多的網路傳輸和調度開銷。因此設計Shard時要充分考慮計算的過程是Shard間充分並行化,還是需要Shard間交換資料的情境。對於資料寫入和更新情境,是可以Shard間並行化寫入與更新,因此Shard更多,吞吐能力會更好;對於點查情境,如果每個查詢都可以準確命中某個Shard,即實現Shard剪枝,那麼Shard更多,並發能力更強;對於OLAP類型查詢,因為需要多個Shard共同參與計算,因此不可避免會有資料交換的情境,過多的Shard將帶來更多的節點間架構調度開銷,並最終降低查詢的並發能力。

在使用Hologres執行個體實踐過程中存在資料量可預估,最適宜執行個體規格以及對應Shard數區間應該設定為多少的問題,由於最適宜執行個體規格和Shard數不僅和資料存放區量有關,還和實際訪問頻率、實際資料訪問量、計算負載的類型(點查、分析等)、寫入吞吐、Table Group上表的個數等因素有關,該問題無法給出準確答案。您可參見下表中根據資料量估算的所需Shard數和執行個體規格的推薦數,選擇適合您的參數配置。

說明

下表根據資料量估算的所需Shard數和執行個體規格的推薦數不是唯一標準,小資料量的表也可以放在多的Shard Count之上,巨量資料量的表也可以放在單個Shard上。請您根據實際業務情境選擇一個合適的Shard Count,既滿足有較高的並發度,帶來更高計算效率,又滿足資料較集中,從而避免不必要的Shuffle開銷。

資料總規模

推薦規格

推薦Shard數

使用說明

4000萬行以下

32Core以上

10~20

不適合壓力測試,建議用於開發環境。

4000萬行~4億行

64Core以上

20~40

適合業務情境較為單一,沒有混合負載情境。

4億行~40億行

128Core以上

40~80

寫入查詢能力較為均衡,建議生產系統預設起步配置。

40億行~400億行

256Core以上

80~240

建議考慮多個Table Group,按照不同業務屬性的內聚性劃分Table Group,或者按照資料量劃分Table Group,不同Table Group設計不同的Shard,建表時明確指定所屬Table Group。

400億行~4000億行

512Core以上

160~400

建議考慮多個Table Group,按照不同業務屬性的內聚性劃分Table Group,或者按照資料量劃分Table Group,不同Table Group設計不同的Shard,建表時明確指定所屬Table Group。僅對部分超大表劃分較多Shard,普通表不建議Shard過多。

執行個體預設資源表

Hologres基於執行個體的資源規格提供預設的最大串連數和預分配的Shard數,預設規格配置如下表所示。

說明
  • 每個執行個體規格包括了計算節點和Frontend接入節點,在512Core及以下規格中,預設計算節點數與Frontend節點數相同,在更大規格中,Frontend節點數會略少於計算節點數。

  • 在規格擴容小於5倍時,不建議調整Shard。該預設規格適合絕大部分情境,考慮了寫入和查詢的平衡配置。

  • 最大總串連數=單Frontend節點最大串連數*Frontend節點數,括弧中為具體每個節點的規格,其中括弧前部分為單接入節點最大串連數,後部分為總Frontend接入節點個數。

執行個體規格

預設計算節點數

預設Shard數(適用於V0.10.31及以上版本)

最大總串連數(適用於V0.10.25及以上版本)

最大總串連數(適用於V2.2及以上版本)

Superuser預留總串連數(適用於V1.1及以上版本)

8Core

1

2

128(128*1)

256(256*1)

5(5*1)

32Core

2

20

256(128*2)

512(256*2)

10(5*2)

64Core

4

40

512(128*4)

1024(256*4)

20(5*4)

96Core

6

60

768(128*6)

1536(256*6)

30(5*6)

128Core

8

80

1024(128*8)

2048(256*8)

40(5*8)

160Core

10

80

1280(128*10)

2560(256*10)

50(5*10)

192Core

12

80

1536(128*12)

3072(256*12)

60(5*12)

256Core

16

120

2048(128*16)

4096(256*16)

80(5*16)

384Core

24

160

3072(128*24)

6144(256*24)

120(5*24)

512Core

32

160

4096(128*32)

8192(256*32)

160(5*32)

新增執行個體規格

自2022年4月25日起,Hologres預設提供了512CU至1024CU之間的計算資源規格,如需更高規格,請您使用自助升級或加入HologresDingTalk交流群反饋,詳情請參見如何擷取更多的線上支援?在升級更大資源規格前,請先將執行個體升級至V1.1.58及以上版本。預設規格配置如下表所示。

執行個體規格

預設計算節點數

預設Shard數(適用於V1.1.58及以上版本)

最大總串連數(適用於V1.1.58及以上版本)

最大總串連數(適用於V2.2及以上版本)

Superuser預留總串連數(適用於V1.1.58及以上版本)

640Core

40

160

5120(128*40)

10240(256*40)

200(5*40)

768Core

48

160

6144(128*48)

12288(256*48)

240(5*48)

896Core

56

160

7168(128*56)

14336(256*56)

280(5*56)

1024Core

64

200

8192(128*64)

16384(256*64)

320(5*64)

1280Core

80

200

10240(128*80)

20480(256*80)

400(5*80)

1536Core

96

200

12288(128*96)

24576(256*96)

480(5*96)

1792Core

112

200

14336(128*112)

28672(256*112)

560(5*112)

2048Core

128

200

16384(128*128)

32768(256*128)

640(5*128)

2304Core

144

240

18432(128*144)

36864(256*144)

720(5*144)

2560Core

160

240

20480(128*160)

40960(256*160)

800(5*160)

3072Core

192

240

24576(128*192)

49152(256*192)

960(5*192)

3584Core

224

240

28672(128*224)

57344(256*224)

1120(5*224)

4096Core

256

320

32768(128*256)

65536(256*256)

1280(5*256)

4608Core

288

320

36864(128*288)

73728(256*288)

1440(5*288)

5120Core

320

320

40960(128*320)

81920(256*320)

1600(5*320)

5632Core

352

320

45056(128*352)

90112(256*352)

1760(5*352)

6144Core

384

320

49152(128*384)

98304(256*384)

1920(5*384)

6656Core

416

320

53248(128*416)

106496(256*416)

2080(5*416)

7168Core

448

320

57344(128*448)

114688(256*448)

2240(5*448)

7680Core

480

320

61440(128*480)

122880(256*480)

2400(5*480)

8192Core

512

400

65536(128*512)

131072(256*512)

2560(5*512)

查看並管理執行個體預設串連數

Hologres支援您查看並管理執行個體預設串連數。

  • 查看串連數。

    當您建立執行個體並串連開發工具之後,可以執行如下語句進行查看,其中傳回值是單個Frontend接入節點的最大串連數。

    說明

    Hologres執行個體總的最大串連數=單Frontend節點最大串連數*Frontend節點數。

    --查看單接入節點的最大串連數(實際串連在多個接入節點間均衡分配)。
    show max_connections;
  • 管理串連。

    執行個體會為Superuser提供預留串連數,當串連數達到預設規格上限時,Superuser可以串連Hologres使用SQL命令查看空閑串連並進行釋放,或者根據業務情況升配。查看空閑串連並進行釋放串連的具體操作,請參見串連數

查看並修改執行個體Shard數

在執行個體擴容後,大多數情況下不需要調整Shard數,更多的Core資源可以提供更好的查詢並發能力。如果您需要更大的寫入能力,可以通過擴大Shard數來提高並發寫入的輸送量。

同時,行存表由於天然的分布特性,更多的Shard讀取效能會更高。如果因業務需求,需要查看以及修改執行個體的Shard數,請參見Table Group與Shard Count操作指南