Hologres自V4.0版本起,針對計算群組型執行個體,支援Multi-cluster與自動彈性擴充能力。一個計算群組可以擴充出多個Cluster,並根據負載情況自動擴充Cluster數量,以滿足計算群組內部的高並發請求情境與資源隔離需求。
架構原理
如果未開啟Multi-cluster,一個計算群組的所有計算資源均歸屬同一Cluster。發送到該計算群組的請求將共用該部分計算資源。未開啟Multi-cluster時,計算群組執行個體架構請參見計算群組執行個體架構。
如果開啟了Multi-cluster,一個計算群組中將建立多個Cluster,Cluster之間計算資源物理隔離。發送到該計算群組的請求將由接入節點FE自動負載平衡調度至某個Cluster中執行。
如果在Multi-cluster的基礎上,進一步開啟自動彈性功能,計算群組將根據自身負載情況(資源水位情況、隊列排隊情況),在負載高時自動調度彈性計算資源,拉起新Cluster,以應對更高並發負載;在負載低時自動釋放彈性Cluster,以降低成本。
適用情境
Multi-cluster功能
適用於高並發的中小查詢請求情境,依託Cluster的負載隔離能力與FE的負載平衡調度,實現更高並發請求承載能力、請求自動分組隔離能力。
不適合低並發的大任務情境,以架構原理中寫入計算群組2為例,其負責巨量資料量離線寫入,需要在單個Cluster中使用更多計算資源,因此更適合使用計算群組的縱向擴充能力,如手動擴容、分時彈性擴容。
自動彈性功能
自動彈性功能的適用情境如下:
高並發的中小查詢請求:同Multi-cluster的適用情境。
請求峰值難以預測:如果可以預測,可通過手動調整Cluster數,或分時彈性擴容解決。
名詞解釋
Multi-cluster相關概念、執行個體與計算群組層級計算資源的定義,請參見資源彈性概述。
以如下執行個體資源使用方式為例:
執行個體
執行個體預留資源:64 CU,其中:
已指派資源:32 CU,屬於計算群組init_warehouse的預留計算資源。
未分配資源:32 CU,該資源可用於繼續建立計算群組,或增加計算群組init_warehouse的預留計算資源。
執行個體彈性資源:32 CU,為計算群組init_warehouse使用彈性功能彈出的計算資源。
init_warehouse計算群組:
預留Cluster數:1個。
單Cluster規格:32 CU。
預留資源:32 CU(1*32)。
當前Cluster數:2個,其中1個預留Cluster,1個彈性Cluster。
彈性資源:32 CU,為自動彈性功能彈出計算資源。
總計算資源:64 CU,其中32 CU預留資源,32 CU彈性資源。
計費說明
執行個體預留資源:即計算群組執行個體獨享計算資源,仍按執行個體付費模式(訂用帳戶/隨用隨付)付費。
自動彈性計算資源:執行個體的計算群組通過自動彈性功能額外彈出的計算資源。計費公式為:
費用 = 執行個體實際彈出彈性資源量(CU*小時) * 資源單價,具體資源單價請參見計費概述。說明系統每分鐘均記錄執行個體當前彈性資源使用方式,每小時完成用量計算、單位轉換和該小時賬單推送,並從賬戶中自動扣除費用。
執行個體彈性資源與執行個體未分配資源不相關。即使執行個體預留資源中仍有未分配資源,自動彈性功能仍會額外彈出彈性計算資源,而不會使用執行個體未分配資源。
使用限制
僅Hologres V4.0及以上版本支援計算群組Multi-cluster與自動彈性功能。
僅支援計算群組型執行個體,不支援Serverless型執行個體和通用型執行個體。
支援地區
Multi-cluster功能:支援全部地區。
自動彈性功能:
地區
自動彈性支援情況
說明
華東1(杭州)
支援
該地區處於公測期,請使用阿里雲帳號(主帳號)填寫表單,申請試用。
西南1(成都)、華東2(上海)、華北2(北京)、華南1(深圳)、中國(香港)、新加坡、德國(法蘭克福)、美國(矽谷)、美國(維吉尼亞)、阿聯酋(杜拜)、日本(東京)、馬來西亞(吉隆坡)、印尼(雅加達)、華東2(上海)金融雲、華北2(北京)政務雲、華南1(深圳)金融雲
不支援
無法申請試用。
注意事項
使用Multi-cluster與自動彈性功能要求的權限:
需要使用阿里雲帳號,或被授予了AliyunHologresWarehouseFullAccess許可權的RAM使用者,該許可權包含了Hologres管理主控台的唯讀許可權和自動彈性功能的配置許可權,授權方式請參見授予RAM使用者權限。
需要帳號擁有執行個體內部的Superuser許可權,授權方式請參見授予RAM使用者執行個體的開發許可權。
計算群組增加/減少Cluster數可能存在一定影響,詳情請參見計算群組管理。
對於同一計算群組,不支援同時使用分時彈性、自動彈性兩個功能。
配置了自動彈性的計算群組,仍支援在管控台完成全部計算群組管理操作,如縱向擴/縮容、啟動/停止、刪除等。
Multi-cluster使用指南
支援通過修改計算群組的“預留Cluster數”使用Multi-cluster功能。操作詳情請參見計算群組管理。
自動彈性使用指南
支援對計算群組開啟自動彈性功能開關,實現在計算群組預留Cluster數的基礎上,根據計算群組負載情況(資源水位情況、隊列排隊情況)自動擴充彈性Cluster。
操作入口
登入Hologres管理主控台,在頂部功能表列左側,選擇相應的地區。
在左側導覽列選擇執行個體列表,單擊目標執行個體ID進入執行個體詳情頁。
在執行個體詳情頁的左側導覽列單擊計算群組管理,並在右側選擇計算群組自動彈性頁簽。
單擊開啟自動彈性,開啟自動彈性開關,並配置最大Cluster數,單擊儲存即可生效。

使用樣本
如上開啟自動彈性後(單Cluster規格為32 CU,預留Cluster數為1,最大Cluster數為4),可參考如下步驟驗證自動彈效能力(以PG原生效能壓測工具pgbench為例)。
在Hologres中建立測試表並寫入資料。
CREATE TABLE tbl_1 (col1 int, col2 int, col3 text); CREATE TABLE tbl_2 (col1 int, col2 int, col3 text); INSERT INTO tbl_1 SELECT i, i+1, md5(random()::text) FROM generate_series (0, 500000) AS i; INSERT INTO tbl_2 SELECT i, i+1, md5(random()::text) FROM generate_series (0, 500000) AS i;在壓測伺服器上建立壓測SQL檔案
select.sql,並寫入如下SQL:EXPLAIN ANALYZE SELECT * FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.col3 = tbl_2.col3 ORDER BY 1;在壓測伺服器上將密碼設定為環境變數。
export PGPASSWORD='<AccessKey_Secret>'執行如下壓測命令,參數配置詳情請參見串連Hologres並開發。
pgbench -c 30 \ -j 30 \ -f select.sql \ -d <Database> \ -U <AccessKey_ID> \ -h <Endpoint> \ -p <Port> \ -T 1800壓測期間,計算群組的監控指標如下圖:
Cluster CPU使用率:

Cluster 1持續負載高,觸發自動彈性(位置1),增加1個Cluster。
壓測完成,2個Cluster負載低,觸發自動彈性(位置2),減少1個Cluster。
計算群組CPU使用率:

自動彈性增加Cluster前,計算群組CPU使用率持續超過85%。
增加Cluster後,計算群組整體CPU使用率下降至70%附近。
監控警示
監控指標
您可在Hologres管控台的監控指標中,查看如下指標,如有需要,可為其配置相應警示規則,詳情請參見Hologres管控台的監控指標。
Cluster CPU使用率
Cluster記憶體使用量率
計算群組自動彈性彈出Core數
彈性事件執行日誌
進入計算群組管理頁面,單擊彈性事件執行日誌頁簽。
選擇自動彈性的時間範圍,可查看過去的彈性事件執行情況,包括執行時間、計算群組、執行狀態、事件類型、預留Cluster數和目標Cluster數。
CloudMonitor事件
Hologres自動彈性實際執行橫向擴充Cluster數的事件,均會記錄到CloudMonitor。
進入CloudMonitor事件中心,在系統事件頁面的事件監控地區選取項目產品Hologres,即可監控到自動彈性變更配置事件。其中:
Instance:Warehouse:AutoElastic:Start:為計算群組自動彈性開始事件。Instance:Warehouse:AutoElastic:Finish:為計算群組自動彈性完成事件。Instance:Warehouse:AutoElastic:Failed:為計算群組自動彈性失敗事件。
您可雲端式監控事件,進一步配置通知、警示等操作,詳情請參見使用系統事件警示。
以自動彈性增加Cluster失敗事件為例,CloudMonitor事件詳情樣本如下:
{
"status": "Failed",
"instanceName": "<instance_id>",
"resourceId": "<instance_resource_id>",
"content": {
"AutoElasticCPU": <cpu_num>,
"ScaleType": "ScaleOut",
"ScheduleId": "xxxxxx",
"WarehouseId": "<warehouse_id>",
"WarehouseName": "<warehouse_name>"
},
"product": "hologres",
"time": 1722852008000,
"level": "WARN",
"regionId": "<region>",
"id": "<event_id>",
"groupId": "0",
"name": "Instance:Warehouse:TimedElastic:Failed"
}Action Trail
Hologres管理主控台上執行的編輯自動彈性等操作,以及自動彈性實際執行Cluster數擴充操作,均會記錄到Action Trail中。詳情請參見事件審計日誌。