文章目錄
- openGauss學習筆記-234 openGauss性能調優-系統調優-資源負載管理-資源管理準備-設置控制組
- 234.1 背景信息
- 234.2 前提條件
- 234.3 操作步驟
- 234.3.1 創建子Class控制組和Workload控制組
- 234.3.2 更新控制組的資源配額
- 234.3.3 刪除控制組
- 234.4 查看控制組的信息
openGauss學習筆記-234 openGauss性能調優-系統調優-資源負載管理-資源管理準備-設置控制組
234.1 背景信息
openGauss資源負載管理的核心是資源池,而配置資源池首先要在環境中實現控制組Cgroups的設置。更多Cgroups的原理介紹,請查看相關操作系統的產品手冊。openGauss的控制組請參考查看控制組的信息。
Class控制組為數據庫業務運行所在的頂層控制組,集群部署時會自動生成默認子Class控制組“DefaultClass”。DefaultClass的Medium控制組會含有系統觸發的作業在運行,該控制組不允許進行資源修改,且運行在該控制組上的作業不受資源管理的控制,所以推薦創建新的子Class及其Workload控制組來設置資源比例。
234.2 前提條件
已熟悉《工具與命令參考》中“服務端工具 > gs_cgroup”章節和“服務端工具 > gs_ssh”章節的使用。
234.3 操作步驟
說明:
- 在openGauss中,需要在每個集群節點上執行控制組的創建、更新、刪除操作,才能實現對整個集群資源的控制,所以下述步驟中都使用《工具與命令參考》中“服務端工具 > gs_ssh”命令執行。
- 控制組的命名要求如下:
- 無論是子Class控制組還是Workload控制組,都不允許在名稱中包含字符“:”。
- 不可以創建同名的控制組。
234.3.1 創建子Class控制組和Workload控制組
-
以操作系統用戶omm登錄openGauss主節點。
-
創建名稱為“class_a”和“class_b”的子Class控制組,CPU資源配額分別為Class的40%和20%。
gs_ssh -c "gs_cgroup -c -S class_a -s 40"
gs_ssh -c "gs_cgroup -c -S class_b -s 20"
-
創建子Class控制組“class_a”下名稱為“workload_a1”和“workload_a2”的Workload控制組,CPU資源配額分別為“class_a”控制組的20%和60%。
gs_ssh -c "gs_cgroup -c -S class_a -G workload_a1 -g 20 "
gs_ssh -c "gs_cgroup -c -S class_a -G workload_a2 -g 60 "
-
創建子Class控制組“class_b”下名稱為“workload_b1”和“workload_b2”的Workload控制組,CPU資源配額分別為“class_b”控制組的50%和40%。
gs_ssh -c "gs_cgroup -c -S class_b -G workload_b1 -g 50 "
gs_ssh -c "gs_cgroup -c -S class_b -G workload_b2 -g 40 "
234.3.2 更新控制組的資源配額
-
更新“class_a”控制組的CPU資源配額為30%。
gs_ssh -c "gs_cgroup -u -S class_a -s 30"
-
更新“class_a”下的“workload_a1”的CPU資源配額為“class_a”的30%。
gs_ssh -c "gs_cgroup -u -S class_a -G workload_a1 -g 30"
須知: 調整后的Workload控制組“workload_a1”占有的CPU資源不應大于其對應的子Class控制組“class_a”。并且,此名稱不能是Timeshare Cgroup的默認名稱,如“Low”、“Medium”、“High”或“Rush”。
234.3.3 刪除控制組
-
刪除控制組“class_a”。
gs_ssh -c "gs_cgroup -d -S class_a"
以上操作可以刪除控制組“class_a”。
須知: root用戶或者具有root訪問權限的用戶指定“-d” 和“-U username”刪除普通用戶“username”可訪問的默認Cgroups。普通用戶指定“-d”和“-S classname”可以刪除已有的Class Cgroups。
234.4 查看控制組的信息
-
查看配置文件中控制組信息。
gs_cgroup -p
控制組配置信息
gs_cgroup -pTop Group information is listed: GID: 0 Type: Top Percent(%): 1000( 50) Name: Root Cores: 0-47 GID: 1 Type: Top Percent(%): 833( 83) Name: Gaussdb:omm Cores: 0-20 GID: 2 Type: Top Percent(%): 333( 40) Name: Backend Cores: 0-20 GID: 3 Type: Top Percent(%): 499( 60) Name: Class Cores: 0-20Backend Group information is listed: GID: 4 Type: BAKWD Name: DefaultBackend TopGID: 2 Percent(%): 266(80) Cores: 0-20 GID: 5 Type: BAKWD Name: Vacuum TopGID: 2 Percent(%): 66(20) Cores: 0-20Class Group information is listed: GID: 20 Type: CLASS Name: DefaultClass TopGID: 3 Percent(%): 166(20) MaxLevel: 1 RemPCT: 100 Cores: 0-20 GID: 21 Type: CLASS Name: class1 TopGID: 3 Percent(%): 332(40) MaxLevel: 2 RemPCT: 70 Cores: 0-20Workload Group information is listed: GID: 86 Type: DEFWD Name: grp1:2 ClsGID: 21 Percent(%): 99(30) WDLevel: 2 Quota(%): 30 Cores: 0-5Timeshare Group information is listed: GID: 724 Type: TSWD Name: Low Rate: 1 GID: 725 Type: TSWD Name: Medium Rate: 2 GID: 726 Type: TSWD Name: High Rate: 4 GID: 727 Type: TSWD Name: Rush Rate: 8Group Exception information is listed: GID: 20 Type: EXCEPTION Class: DefaultClass PENALTY: QualificationTime=1800 CPUSkewPercent=30GID: 21 Type: EXCEPTION Class: class1 PENALTY: AllCpuTime=100 QualificationTime=2400 CPUSkewPercent=90GID: 86 Type: EXCEPTION Group: class1:grp1:2 ABORT: BlockTime=1200 ElapsedTime=2400
上述示例查看到的控制組配置信息如表1所示。
表 1 控制組配置信息
GID 類型 名稱 Percent(%)信息 特定信息 0 Top控制組 Root 1000代表總的系統資源為1000份。括號中的50代表IO資源的50%。openGauss不通過控制組對IO資源做控制,因此下面其他控制組信息中僅涉及CPU配額情況。 - 1 Gaussdb:omm 系統中只運行一套數據庫程序,Gaussdb:omm控制組默認配額為833,數據庫程序和非數據庫程序的比值為(833:167=5:1)。 - 2 Backend Backend和Class括號中的40和60,代表Backend占用Gaussdb:dbuser控制組40%的資源,Class占用Gaussdb:dbuser控制組60%的資源。 - 3 Class - 4 Backend控制組 DefaultBackend 括號中的80和20代表DefaultBackend和Vacuum占用Backend控制組80%和20%的資源。 TopGID:代表Top類型控制組中Backend組的GID,即2。 5 Vacuum 20 Class控制組 DefaultClass DefaultClass和class1的20和40代表占Class控制組20%和40%的資源。因為當前只有兩個Class組,所有它們按照20:40的比例分配Class控制組499的系統配額,則分別為166和332。 TopGID:代表DefaultClass和class1所屬的上層控制(Top控制組中的Class組)的GID,即3。MaxLevel:Class組當前含有的Workload組的最大層次,DefaultClass沒有Workload Cgroup,其數值為1。RemPCT:代表Class組分配Workload組后剩余的資源百分比。如class1中剩余的百分比為70。 21 class1 86 Workload控制組 grp1:2(該名稱由Workload Cgroup Name和其在class中的層級組成,它是class1的第一個Workload組,層級為2,每個Class組最多10層Workload Cgroup。) 根據設置,其占class1的百分比為30,則為332*30%=99。 ClsGID:代表Workload控制組所屬的上層控制組(class1控制組)的GID。WDLevel:代表當前Workload Cgroup在對應的Class組所在的層次。 724 Timeshare控制組 Low - Rate:代表Timeshare中的分配比例,Low最少為1,Rush最高為8。這四個Timeshare組的資源配比為Rush:High:Medium:Low=8:4:2:1 725 Medium - 726 High - 727 Rush - -
查看操作系統中樹形結構的控制組信息。
執行如下命令可以查詢控制組樹形結構信息。
gs_cgroup -P
返回信息如下,其中shares代表操作系統中CPU資源的動態資源配額“cpu.shares”的數值,cpus代表操作系統中CPUSET資源的動態資源限額“cpuset.cpus”的數值,指的是該控制組能夠使用的核數范圍。
Mount Information: cpu:/dev/cgroup/cpu blkio:/dev/cgroup/blkio cpuset:/dev/cgroup/cpuset cpuacct:/dev/cgroup/cpuacctGroup Tree Information: - Gaussdb:wangrui (shares: 5120, cpus: 0-20, weight: 1000)- Backend (shares: 4096, cpus: 0-20, weight: 400)- Vacuum (shares: 2048, cpus: 0-20, weight: 200)- DefaultBackend (shares: 8192, cpus: 0-20, weight: 800)- Class (shares: 6144, cpus: 0-20, weight: 600)- class1 (shares: 4096, cpus: 0-20, weight: 400)- RemainWD:1 (shares: 1000, cpus: 0-20, weight: 100)- RemainWD:2 (shares: 7000, cpus: 0-20, weight: 700)- Timeshare (shares: 1024, cpus: 0-20, weight: 500)- Rush (shares: 8192, cpus: 0-20, weight: 800)- High (shares: 4096, cpus: 0-20, weight: 400)- Medium (shares: 2048, cpus: 0-20, weight: 200)- Low (shares: 1024, cpus: 0-20, weight: 100)- grp1:2 (shares: 3000, cpus: 0-5, weight: 300)- TopWD:1 (shares: 9000, cpus: 0-20, weight: 900)- DefaultClass (shares: 2048, cpus: 0-20, weight: 200)- RemainWD:1 (shares: 1000, cpus: 0-20, weight: 100)- Timeshare (shares: 1024, cpus: 0-20, weight: 500)- Rush (shares: 8192, cpus: 0-20, weight: 800)- High (shares: 4096, cpus: 0-20, weight: 400)- Medium (shares: 2048, cpus: 0-20, weight: 200)- Low (shares: 1024, cpus: 0-20, weight: 100)- TopWD:1 (shares: 9000, cpus: 0-20, weight: 900)
-
通過系統視圖獲取控制組配置信息。
a.使用gsql訪問openGauss數據庫。
b.獲取系統中所有控制組的配置信息。
openGauss=# SELECT * FROM gs_all_control_group_info;
👍 點贊,你的認可是我創作的動力!
?? 收藏,你的青睞是我努力的方向!
?? 評論,你的意見是我進步的財富!