想做DBA,多租戶管理你一定要知道這些


摘要:多租戶為滿足客戶混合負載處理需求而生,通過提供兩層用戶機制,分層資源隔離,滿足客戶對計算和存儲資源的自主控制需求。

本文分享自華為雲社區《關於GaussDB(DWS)多租戶管理,這些你一定要知道》,原文作者:瑪卡巴卡的小點點。

一、多租戶的背景及意義

多租戶為滿足客戶混合負載處理需求而生,通過提供兩層用戶機制,分層資源隔離,滿足客戶對計算和存儲資源的自主控制需求。兩級用戶分別關聯不同的資源池和存儲空間,實現多租戶下資源分組管理。

二、GaussDB(DWS)的多租戶

目前GaussDB(DWS)的多租戶能夠進行隔離的資源包括:CPU資源、內存資源、IO資源、存儲資源。

GaussDB的多租戶通過綁定資源池來實現,具體原理如下圖所示:

https://bbs-img.huaweicloud.com/blogs/img/1617935672492092706.png

 

 

 

 

 

 

借助上圖說明多租戶的管控方式,見往下三、四、五章節。

三、控制組設置

通過設置控制組可以進行以下幾方面的資源隔離:

(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級數倉黑科技~

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

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



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