GaussDB(DWS) 資源管理系列一:CPU資源管理

      網友投稿 607 2025-03-31

      一、CPU資源管理背景


      在分布式數據庫執行作業時,系統壓力可能集中于某些節點或者某些系統資源,導致集群資源不能充分利用,集群性能不能充分發揮。GaussDB(DWS)通過資源管理、作業負載管理,優先級調度、資源監控、多租戶等方法,解決這些問題,提升集群性能。

      其中影響集群性能得系統資源主要包括內存、CPU、磁盤I/O 、存儲空間和網絡帶寬等,本文主要介紹CPU資源的分配與隔離。

      二、CPU資源管理簡介

      GaussDB(DWS)的CPU資源管理通過Cgroup實現,Cgroup是linux內核提供的限制和隔離進程組使用物理資源的機制,可以組成層次形式,即控制樹。GaussDB(DWS)提供gs_cgroup工具,負責創建默認控制組、創建用戶自定義控制組、刪除用戶自定義控制組、更新用戶自定義組的資源配額和資源限額、顯示控制組配置文件內容、顯示控制組樹形結構和刪除用戶的所有控制組。CPU資源管理原理如下圖:

      三、gs_cgroup使用

      gs_cgroup工具為使用數據庫的操作系統用戶創建Cgroups配置文件,并且在操作系統中生成用戶設定的Cgroups。同時為用戶提供增加、刪除Cgroups,更新Cgroups資源配額,設定Cgroups的CPU或IO限額,設定異常處理閾值及相應操作等服務。此工具只負責當前操作系統節點的Cgroups操作,使用時需在各個節點上調用相同命令語句進行統一配置,GaussDB(DWS)提供了gs_ssh工具幫助用戶在集群各節點上執行相同的命令,例如:

      gs_ssh -c "gs_cgroup -c -S class_a -s 40 "

      1、gs_cgroup參數簡介

      參數

      功能

      -a [--abort]

      對滿足設定的異常閾值的作業執行終止動作

      -b pct

      Backend Cgroups占用Top Backend資源的百分比,需同時指定“-B backendname”

      -B name

      Backend Cgroups名稱,僅可指定“-u”參數來更新此Cgroups的資源配額。-b percent和-B backendname參數共同作用來控制數據庫后備線程的資源比例。

      -c

      創建Cgroups并指定其標識

      -d

      刪除Cgroups及標識。

      -D mpoint

      設置加載Cgroups文件系統的路徑,“root”用戶或者具有“root”訪問權限的用戶才可以調用

      -E data

      設定異常閾值,目前閾值包括:blocktime,elapsedtime,allcputime,spillsize,broadcastsize以及qualificationtime和cpuskewpercent,指定多個閾值時用“,”分隔。

      -h [--help]

      顯示命令幫助信息。

      -H

      用戶環境中$GAUSSHOME信息。僅用于root用戶執行gs_cgroup時,需指定用戶中數據庫安裝程序所在目錄。

      -f

      設置Gaussdb控制組使用的核數范圍,范圍必須是 a-b或a的形式。其他控制組可以使用--fixed進行設置核數范圍。

      --fixed

      設置控制組使用的核數范圍比例占上一層級的百分比或者設置IO資源。

      -g pct

      指定Workload Cgroups的資源占用“Class”Cgroups資源的百分比,需同時指定“-G groupname”參數;用于創建“-c”或更新“-u”Workload Cgroups。

      -G name

      指定Workload Cgroups的名稱,需同時指定“-S classname”參數來表示該group屬于哪個Class Cgroups;可以連同“-c”參數創建新的Cgroups、“-d”參數刪除此Cgroups及“-u”更新此Cgroups的資源配額;需要注意,此名稱不可是TimeshareCgroups的默認名稱,如“Low”、“Medium”、“High”或“Rush”。

      -m

      加載Cgroups文件系統,“root”用戶或者具有“root”訪問權限的用戶才可以調用。

      -M

      卸載Cgroups文件系統,“root”用戶或者具有“root”訪問權限的用戶才可以調用。

      -N [--group] name

      可以將組名簡寫成class:wg。

      -p

      顯示Cgroups配置文件的信息。

      -P

      顯示Cgroups樹形結構信息。

      --penalty

      對滿足設定的異常閾值的作業執行降級動作,如果沒有設定任何操作,則該操作將為默認操作。

      -r data

      僅用于更新I/O資源讀數據上限,用于設置“blkio.throttle.read_bps_device”的數值;為字符串類型,該字符串由“major:minor value”構成,其中major為要訪問的磁盤的主設備號,minor為要訪問的磁盤的次設備號,value為設備每秒讀操作次數上限數值,取值范圍為0 ~ ULONG_MAX,其中取值0用來初始化此字段為空;需和“-u”參數及Cgroups名稱一同使用;如果Class Cgroups和Workload Cgroups的名稱同時指定,則只應用到Workload Cgroups。

      -R data

      僅用于更新IO資源每秒讀操作次數上限,用于設置“blkio.throttle.read_iops_device”的數值;取值信息同“-r”參數;需和“-u”參

      數及Cgroups名稱一同使用;如果Class Cgroups和Workload Cgroups的名稱同時指定,則只應用到Workload Cgroups。

      --recover

      僅用于回退class控制組和workload控制組的增刪改操作,且只能回退一步。

      --revert

      恢復控制組為默認狀態。

      --refresh

      刷新控制組狀態。

      -s pct

      指定Class Cgroups的資源占用“Top Class”Cgroups資源的百分比,需同時指定“-S classname”參數;用于創建“-c”或更新“-u”Class Cgroups。

      -S name

      指定Class group的名稱;可以連同“-c”參數創建新的Cgroups、“-d”參數刪除此Cgroups及“-u”更新此Cgroups的資源配

      -t percent

      指定Top Cgroups(Root、Gaussdb:gaussdba、Backend和Class Cgroups)占用資源的百分比,需同時指定“-T name”參數

      -T name

      指定Top Cgroups的名稱;僅可指定“-u”更新此Cgroups的資源配額;僅“root”用戶或者具有“root”訪問權限的用戶可以更新“Root”Cgroups。

      -u

      更新Cgroups

      -U name

      操作系統普通用戶名;僅“root”用戶或者具有“root”訪問權限的用戶調用時指定。

      -V [--version]

      顯示gs_cgroup工具的版本信息。

      GaussDB(DWS) 資源管理系列一:CPU資源管理

      -w data

      僅用于更新I/O資源每秒寫數據上限,用于設置“blkio.throttle.write_bps_device”的數值。取值信息同“-r”參數,需和“-u”參數及Cgroups名稱一同使用。

      -W data

      僅用于更新IO資源每秒寫操作次數上限,用于設置“blkio.throttle.write_iops_device”的數值。取值信息同“-r”參數,需和“-u”參數及Cgroups名稱一同使用。

      2、gs_cgroup常用操作

      (1) gs_cgroup配置

      gs_cgroup -U user -c -H $GAUSSHOME

      (2)創建控制組

      gs_cgroup -c -S cls1 -s 40 //創建名為cls1的配額為40%的Class控制組

      gs_cgroup -c -S cls1 -G grp1 -g 20 //在Class控制組cls1下創建名為grp1的配額為20%的Workload

      (3)更新控制組

      gs_cgroup -u -S cls1 -s 50 //更新cls1控制組配額為50%

      gs_cgroup -u -S cls1 -G grp1 -g 40 //更新grp1控制組配額為40%

      (4)刪除控制組

      gs_cgroup -d -S cls11 //刪除用戶組cls11

      (5)查看控制組信息

      gs_cgroup –P //以樹形結構查看控制組信息

      gs_cgroup –p //以表格形式查看控制組信息

      (6)指定核數

      gs_cgroup -u -S cls1 -s 40 --fixed //指定核數

      數據倉庫服務 GaussDB(DWS)

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:表格為什么不能復制粘貼了(表格為什么不能復制粘貼了文字)
      下一篇:Python中的堆棧:如何,為什么以及在哪里?
      相關文章
      亚洲成人福利在线观看| 亚洲乱码国产乱码精品精| 亚洲AV无码专区国产乱码4SE| 亚洲真人日本在线| 国产成人亚洲综合a∨| 亚洲av成人中文无码专区| 亚洲AV无码一区二区二三区软件| 亚洲一区在线视频观看| 亚洲精品中文字幕无乱码| 精品日韩亚洲AV无码一区二区三区 | 亚洲AV无码一区二三区| 欧美亚洲国产SUV| 成人伊人亚洲人综合网站222| 亚洲av纯肉无码精品动漫| www亚洲精品少妇裸乳一区二区| 校园亚洲春色另类小说合集| 日韩亚洲人成在线综合| 成人亚洲网站www在线观看| 亚洲人成无码网WWW| 久久亚洲精品无码播放| 亚洲中文字幕视频国产| 亚洲色成人网站WWW永久| 精品久久香蕉国产线看观看亚洲| 亚洲国产精品VA在线观看麻豆| 亚洲AV无码专区国产乱码电影| 91久久亚洲国产成人精品性色| 亚洲电影在线播放| 亚洲欧洲日韩极速播放| 亚洲.国产.欧美一区二区三区| 亚洲成网777777国产精品| 亚洲精品成人a在线观看| 中文字幕亚洲一区二区va在线| 亚洲精品少妇30p| 亚洲精品少妇30p| 亚洲精品成人网站在线播放| 亚洲人成77777在线观看网| 亚洲AV无码男人的天堂| 亚洲国产综合无码一区二区二三区| 国产成人毛片亚洲精品| 亚洲爆乳无码一区二区三区| 亚洲视频免费在线播放|