GaussDB(DWS)實踐系列-工作負載管理交付指南(線下版本)

      網友投稿 798 2025-03-31

      一、??? 場景介紹


      對于線下GaussDB(DWS)交付版本,在項目交付中可能會遇到同時包含核心交易(OLTP)和報表分析(OLAP)的混合業務場景,其中報表分析類業務復雜度高,消耗大量系統資源,但實時性要求較低,而核心交易類業務并發較大,多為簡單事務處理,對實時性要求高。

      當系統處于業務高峰時,報表分析類業務并發操作會加劇系統負載,且長時間占用資源無法釋放,最終可能導致整體性能裂化,實時性要求較高的核心交易類業務因資源爭搶而無法得到響應,從而影響客戶整體體驗。

      資源管控的目的是基于業務場景和可用資源,進行合理的資源與并發度管控,以保障數據庫可以在高負載場景下正常運行,不會因為資源爭搶和耗盡出現系統卡死,提升系統整體吞吐量。

      如上圖所示,業務場景主要分為核心交易(OLTP)和報表分析(OLAP)兩大類,其中報表服務的優先級相對較低,在合理的情況下優先保障業務系統的正常運行。

      業務系統中運行的SQL分為簡單SQL和復雜SQL,大量復雜SQL的并發執行會導致數據庫服務器資源爭搶,簡單SQL的大量并發對服務器不構成持續壓力,短時間內可執行完成,不會造成業務堆積。其中報表服務中運行的SQL以復雜SQL居多,整體業務邏輯相對復雜,在數據庫層面需要分別對核心交易和報表服務進行合理的資源管控,以保障業務系統正常運行。

      二、??? 方案規劃

      GaussDB(DWS)資源負載管理的核心是資源池,而配置資源池首先要在環境中實現控制組Cgroups的設置。gs_cgroup是GaussDB(DWS)提供的負載管理工具。負責創建默認控制組、創建用戶自定義控制組、刪除用戶自定義控制組、更新用戶自定義組的資源配額和資源限額、顯示控制組配置文件內容、顯示控制組樹形結構和刪除用戶的所有控制組,結合現網業務場景規劃方案如下。

      (一)??? 靜態資源池規劃

      靜態資源池可以控制數據庫能使用服務器資源的上限,由于服務器操作系統運行也需要消耗一定的資源,因此預留一定的服務器資源來保障操作系統的正常運行。

      推薦靜態資源池配置:數據庫分配93% CPU資源和70% 內存資源。這樣可以保證服務器能夠正常響應系統請求。

      靜態資源池分配93% CPU資源和70% 內存資源。

      (二)??? 交易用戶和報表用戶分離

      報表分析類業務的優先級和實時性相對較低,但是復雜度更高,為有效進行資源管控,將報表分析和核心交易業務進行數據庫用戶分離,例如核心交易業務使用數據庫用戶budget_config_user,報表分析業務使用數據庫用戶report_user。針對交易用戶和報表用戶分別進行CPU資源和并發數控制以保障數據庫穩定運行。

      結合報表分析業務的負載調研、日常監控和測試驗證,20并發以內的復雜報表SQL不會引起服務器資源爭搶,不會引起業務系統卡慢,因此配置報表用戶最多使用20%的CPU資源。

      結合核心交易業務的的負載調研、日常監控和測試驗證,50并發以內的復雜SQL不會對系統造成持續壓力,整體CPU負載小于60%。例如可以進行如下配置。

      交易用戶分配60%的CPU配額和50并發。

      報表用戶分配20%的CPU限額和20并發。

      其中CPU配額是指占用CPU時間片的百分比。若分配給某個用戶的CPU配額資源未使用,系統會自動將這些資源共享給其他用戶。CPU限額是指用戶可以使用的CPU核數的百分比。系統會將百分比換算成具體的核數供用戶使用,且用戶可使用的CPU限額資源不超過通過百分比換算的核數范圍。

      (三)??? 并發管控閾值設置

      資源管控的并發控制是基于SQL的cost值(SQL執行代價)來評估,結合客戶場景、硬件配置和SQL測試分析,當SQL的cost值小于1000時,SQL并發對服務器不構成持續壓力,短時間內可執行完成,不會造成業務堆積。當SQL的cost值大于1000時,大量并發會導致服務器資源爭搶,引起系統卡慢。

      因此將受控SQL的cost的臨界值設置為1000。當SQL的cost值大于1000時受資源管控的并發度控制,當SQL的cost值小于1000時不受資源管控的并發度控制。

      區分SQL復雜和簡單的cost值設置為1000

      三、??? 配置指南

      (一)??? 配置靜態資源池

      登錄FusionInsight管理平臺。

      點擊集群界面

      點擊靜態服務池

      點擊右上角配置,如下所示,把CPU改成93%,內存改為70%。

      權重全部改為100%,點擊根據權重配置生成詳細配置。

      點擊最下面的確定按鈕,在彈出窗進行確定。

      (二)??? 數據庫用戶分離

      創建交易用戶(budget_config_user)和報表用戶(report_user)。

      (三)??? 配置cgroup

      GaussDB(DWS)實踐系列-工作負載管理交付指南(線下版本)

      使用omm用戶登錄數據服務器,執行如下命令設置CPU配額:

      source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile

      gs_ssh -c "gs_cgroup -c -S class1 -s 60"

      gs_ssh -c "gs_cgroup -c -S class1 -G wg1 -g 99"

      gs_ssh -c "gs_cgroup -c -S class2 -s 20 "

      gs_ssh -c "gs_cgroup -u -S class2 -s 20 --fixed"

      gs_ssh -c "gs_cgroup -c -S class2 -G wg2 -g 99 "

      (四)??? 創建資源池并綁定cgroup

      使用omm用戶登錄數據庫服務器,執行如下命令設置并發管控:

      source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile

      gSQL -d postgres -p 25308 -c "create resource pool rp1 with (mem_percent=0,active_statements=50,control_group='class1:wg1');”

      gSQL -d postgres -p 25308 -c "create resource pool rp2 with (mem_percent=0,active_statements=20,control_group='class2:wg2');"

      (五)??? 用戶綁定資源池

      使用omm用戶登錄數據庫服務器,執行如下命令將用戶綁定資源池:

      source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile

      gSQL -d postgres -p 25308 -c "alter user budget_config_user resource pool 'rp1';"

      gSQL -d postgres -p 25308 -c "alter user report_user resource pool 'rp2';"

      (六)??? 修改數據庫參數并重啟生效

      使用omm用戶登錄數據庫服務器,執行如下命令修改數據庫參數:

      source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile

      gs_guc reload -Z coordinator -Z datanode -N all -I all -c "parctl_min_cost=1000"

      gs_guc set -Z coordinator -Z datanode -N all -I all -c "enable_dynamic_workload=off"

      cm_ctl stop

      cm_ctl start

      四、??? 資源管控測試驗證

      (一)??? 測試SQL樣例

      select count(1) from p#fasp_t_glctrl122299 a,p#fasp_t_glctrl122299 b;

      打印執行計劃如下,cost值大于1000,已按方案設置資源管控的并發控制閾值cost為1000:

      (二)??? 交易用戶并發驗證

      使用交易用戶budget_config_user

      使用測試SQL樣例(cost值大于1000)

      啟動100并發測試

      使用budget_config_user進行100并發樣例SQL驗證,當并發數達到50時管控,超過50并發后剩余SQL在管道內排隊等待執行。

      (三)??? 報表用戶并發驗證

      使用報表用戶report_user

      使用測試SQL樣例(cost值大于1000)

      啟動100并發測試

      使用report_user進行100并發樣例SQL驗證,當并發數達到20時管控,超過20并發后剩余SQL在管道內排隊,等待執行。

      (四)??? 報表用戶和交易用戶同時并發驗證

      分別使用交易用戶budget_config_user和報表用戶report_user

      使用測試SQL樣例(cost值大于1000)

      分別啟動100并發測試

      使用budget_config_user和report_user分別進行100并發樣例SQL驗證,交易用戶并發50受控,報表用戶并發20受控。

      (五)??? 報表用戶限額CPU驗證

      使用報表用戶report_user

      使用測試SQL樣例(cost值大于1000)

      啟動100并發測試

      CPU限額設置20%,使用report_user進行100并發樣例SQL驗證,CPU使用達到20%時進行資源管控。

      CPU限額設置30%,使用report_user進行100并發樣例SQL驗證,CPU使用達到30%時進行資源管控。

      (六)??? 交易用戶配額CPU驗證

      使用交易用戶budget_config_user

      使用測試SQL樣例(cost值大于1000)

      啟動100并發測試

      在配額60%CPU的情況下,CPU使用可以超過60%,不進行CPU強制限制(這點與限額不同),業務高峰時可以根據業務情況彈性擴展。

      GaussDB(DWS)實踐系列-工作負載管理交付指南(線上版本)

      博文: https://bbs.huaweicloud.com/blogs/266991

      論壇: https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=128276

      想了解GuassDB(DWS)更多信息,歡迎微信搜索“GaussDB DWS”關注微信公眾號,和您分享最新最全的PB級數倉黑科技,后臺還可獲取眾多學習資料~

      EI企業智能 Gauss AP 數據倉庫服務 GaussDB(DWS) 數據庫

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

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

      上一篇:Excel怎樣批量創建工作表名
      下一篇:excel中怎么使用DATEDIF函數
      相關文章
      亚洲国产成人综合| 在线观看日本亚洲一区| 亚洲国产成人精品无码区在线观看 | 亚洲色成人中文字幕网站| 亚洲偷自拍另类图片二区| 亚洲欧洲日韩不卡| 免费亚洲视频在线观看| 亚洲人成网站在线播放2019| 91午夜精品亚洲一区二区三区| 亚洲精品无码不卡在线播放HE| 亚洲国产精品激情在线观看| 亚洲欧美日韩久久精品| 亚洲人成网址在线观看| 国产精品亚洲一区二区三区在线| 亚洲精品国产高清嫩草影院| 亚洲AV无码乱码在线观看性色扶| 亚洲国产精品无码中文lv | 亚洲三级高清免费| 亚洲免费福利在线视频| 中文字幕乱码亚洲精品一区| 亚洲一区二区三区亚瑟| 久久精品国产亚洲av麻豆图片| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲一区二区三区乱码在线欧洲| 亚洲最大的成人网| 亚洲成在人线在线播放无码| 国产精品亚洲精品日韩电影| 亚洲第一黄片大全| 成人亚洲性情网站WWW在线观看| 亚洲人成网亚洲欧洲无码久久| 亚洲国产AV无码专区亚洲AV| 亚洲bt加勒比一区二区| 亚洲综合久久成人69| 亚洲av永久无码精品天堂久久| 亚洲日本人成中文字幕| 亚洲精品又粗又大又爽A片| 激情小说亚洲图片| 亚洲第一福利网站在线观看| 亚洲午夜久久久影院| 亚洲av永久无码精品漫画| 日产亚洲一区二区三区|