想作DBA,多租戶管理你必定要知道這些

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

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

1、多租戶的背景及意義

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

2、GaussDB(DWS)的多租戶

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

GaussDB的多租戶經過綁定資源池來實現,具體原理以下圖所示:
image.png併發

藉助上圖說明多租戶的管控方式,見往下3、4、五章節。url

3、控制組設置

經過設置控制組能夠進行如下幾方面的資源隔離:spa

(1)設置CPU核數和控制組CPU份額,進行CPU資源管理;blog

(2)設置異常規則來對異常做業進行終止或降級;內存

一、class控制組

建立名稱爲「class_a」的子Class控制組,CPU資源配額分別爲Class的40%。
gs_cgroup -c -S class_a -s 40資源

二、workload控制組

建立子Class控制組「class_a」下名稱爲「workload_a1」的Workload控制組,CPU資源配額分別爲「class_a」控制組的20%。get

gs_cgroup -c -S class_a -G workload_a1 -g 20

三、異常規則

設置「class_a」下屬「workload_a1」的做業阻塞到1200秒或執行2400秒時執行終止動做。

gs_cgroup -S class_a -G workload_a1 -E "blocktime=1200,elapsedtime=2400" -a

支持的控制組異常規則:
image.png

4、資源池設置

經過設置資源池屬性能夠進行如下幾方面的資源隔離:

(1)經過設置mem_percent、memory_limit進行內存資源管理;

(2)經過設置io_limits、io_priority進行IO管控;

(3)經過設置active_statements、max_dop進行併發管控;

(4)能夠設置指定的控制組,進行CPU和異常規則的管理;

(5)設置資源池異常規則;

一、組資源池

建立名稱爲「resource_pool_a」的組資源池關聯到了「class_a」控制組。

CREATE RESOURCE POOL resource_pool_a WITH (control_group='class_a');

二、業務資源池

(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);

三、可設置的資源池屬性

image.png

四、可設置的資源池異常規則
image.png

5、用戶設置

經過設置用戶屬性進行存儲空間管控:

一、建立組用戶關聯組資源池

CREATE USER tenant_a RESOURCE POOL 'resource_pool_a' PASSWORD 'Gauss_234';

二、建立業務用戶關聯業務資源池

CREATE USER tenant_a1 RESOURCE POOL 'resource_pool_a1' USER GROUP 'tenant_a' PASSWORD 'Gauss_234';

三、經過設置用戶屬性(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';

6、總結

上文主要介紹了多租戶技術的架構和使用方法,經過租戶關聯控制組和資源池,多租戶的設置有效隔離了CPU資源、內存資源、IO資源和存儲資源,提供了有力的混合負載管理能力。

想了解GuassDB(DWS)更多信息,歡迎微信搜索「GaussDB DWS」關注微信公衆號,和您分享最新最全的PB級數倉黑科技~

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

相關文章
相關標籤/搜索