摘要:多租戶為滿足客戶混合負載處理需求而生,通過提供兩層用戶機制,分層資源隔離,滿足客戶對計算和存儲資源的自主控制需求。
本文分享自華為雲社區《關於GaussDB(DWS)多租戶管理,這些你一定要知道》,原文作者:瑪卡巴卡的小點點。
一、多租戶的背景及意義
多租戶為滿足客戶混合負載處理需求而生,通過提供兩層用戶機制,分層資源隔離,滿足客戶對計算和存儲資源的自主控制需求。兩級用戶分別關聯不同的資源池和存儲空間,實現多租戶下資源分組管理。
二、GaussDB(DWS)的多租戶
目前GaussDB(DWS)的多租戶能夠進行隔離的資源包括:CPU資源、內存資源、IO資源、存儲資源。
GaussDB的多租戶通過綁定資源池來實現,具體原理如下圖所示:
借助上圖說明多租戶的管控方式,見往下三、四、五章節。
三、控制組設置
通過設置控制組可以進行以下幾方面的資源隔離:
(1)設置CPU核數和控制組CPU份額,進行CPU資源管理;
(2)設置異常規則來對異常作業進行終止或降級;
1、class控制組
創建名稱為“class_a”的子Class控制組,CPU資源配額分別為Class的40%。
gs_cgroup -c -S class_a -s 40
2、workload控制組
創建子Class控制組“class_a”下名稱為“workload_a1”的Workload控制組,CPU資源配額分別為“class_a”控制組的20%。
gs_cgroup -c -S class_a -G workload_a1 -g 20
3、異常規則
設置“class_a”下屬“workload_a1”的作業阻塞到1200秒或執行2400秒時執行終止動作。
gs_cgroup -S class_a -G workload_a1 -E "blocktime=1200,elapsedtime=2400" -a
支持的控制組異常規則:
四、資源池設置
通過設置資源池屬性可以進行以下幾方面的資源隔離:
(1)通過設置mem_percent、memory_limit進行內存資源管理;
(2)通過設置io_limits、io_priority進行IO管控;
(3)通過設置active_statements、max_dop進行並發管控;
(4)可以設置指定的控制組,進行CPU和異常規則的管理;
(5)設置資源池異常規則;
1、組資源池
創建名稱為“resource_pool_a”的組資源池關聯到了“class_a”控制組。
CREATE RESOURCE POOL resource_pool_a WITH (control_group='class_a');
2、業務資源池
(1)創建名稱為“resource_pool_a1”的業務資源池關聯到了“workload_a1”控制組
CREATE RESOURCE POOL resource_pool_a1 WITH (control_group='class_a:workload_a1');
(2)更新一個資源池,其控制組指定為"DefaultClass"組下屬的"High" Timeshare Workload控制組。
ALTER RESOURCE POOL pool1 WITH (CONTROL_GROUP="High");
(3)修改資源池“resource_pool_a1”的內存比例為可用內存大小的20%,即設置MEM_PERCEN的取值為20。
ALTER RESOURCE POOL resource_pool_a1 WITH (MEM_PERCENT=20);
3、可設置的資源池屬性
4、可設置的資源池異常規則
五、用戶設置
通過設置用戶屬性進行存儲空間管控:
1、創建組用戶關聯組資源池
CREATE USER tenant_a RESOURCE POOL 'resource_pool_a' PASSWORD 'Gauss_234';
2、創建業務用戶關聯業務資源池
CREATE USER tenant_a1 RESOURCE POOL 'resource_pool_a1' USER GROUP 'tenant_a' PASSWORD 'Gauss_234';
3、通過設置用戶屬性(PERM SPACE、TEMP SPACE、SPILL SPACE)可以進行存儲空間管控:
(1)修改用戶“tenant_space_test”永久表空間限額不受限制。
ALTER USER tenant_space_test PERM SPACE 'unlimited';
(2)修改用戶“tenant_space_test”臨時表空間限額為100G。
ALTER USER tenant_space_test TEMP SPACE '100G';
(3)修改用戶“tenant_space_test”算子落盤空間限額為200G。
ALTER USER tenant_space_test SPILL SPACE '200G';
六、總結
上文主要介紹了多租戶技術的架構和使用方法,通過租戶關聯控制組和資源池,多租戶的設置有效隔離了CPU資源、內存資源、IO資源和存儲資源,提供了有力的混合負載管理能力。
想了解GuassDB(DWS)更多信息,歡迎微信搜索“GaussDB DWS”關注微信公眾號,和您分享最新最全的PB級數倉黑科技~