openGauss学习笔记-235 openGauss性能调优-系统调优-资源负载管理-资源管理准备-创建资源池

news2024/11/17 3:30:18

文章目录

    • openGauss学习笔记-235 openGauss性能调优-系统调优-资源负载管理-资源管理准备-创建资源池
      • 235.1 背景信息
      • 235.2 前提条件
      • 235.3 操作过程
        • 235.3.1 创建资源池
        • 235.3.2 管理资源池
        • 235.3.3 删除资源池
      • 235.4 查看资源池的信息

openGauss学习笔记-235 openGauss性能调优-系统调优-资源负载管理-资源管理准备-创建资源池

235.1 背景信息

openGauss支持通过创建资源池对主机资源进行划分。开启资源负载管理之后,仅使用默认资源池并不能满足业务对资源负载管理的诉求,必须根据需要创建新的资源池,对系统资源进行重分配,来满足实际业务对系统资源精细管理的需要。普通资源池的特点见表1

表 1 普通资源池的特点

资源池分类特点
普通资源池(普通场景)关联Workload控制组。且必须没有组资源池关联该控制组对应的子class。即如果创建业务资源池关联控制组‘class1:wd’,那么必须没有组资源池关联‘class1’。mem_percent默认为0%,没有mem_percent相加小于100%的限制。

在开启了资源负载管理功能之后,系统会自动创建default_pool,当一个会话或者用户没有指定关联的资源池时,都会被默认关联到default_pool。default_pool默认绑定DefaultClass:Medium控制组,并且不限制所关联的业务的并发数。default_pool的详细属性如表2所示。

表 2 default_pool属性

属性属性值说明
respool_namedefault_pool资源池名称。
mem_percent100最大占用内存百分比。
cpu_affinity-1CPU亲和性,保留参数。
control_groupDefaultClass:Medium资源池关联的控制组。
active_statements-1资源池允许的最大并发数。-1为不限制并发数量,最大值不超过INT_MAX。
max_dop1开启SMP后,算子执行的并发度,保留参数。
memory_limit8GB内存使用上限,保留参数。
parentid0父资源池OID。
io_limits0每秒触发IO的次数上限。行存单位是万次/s,列存是次/s。0表示不控制,最大值不超过INT_MAX。
io_priorityNoneIO利用率高达90%时,重消耗IO作业进行IO资源管控时关联的优先级等级。None表示不控制。
nodegroupInstallationGuide资源池所在的逻辑集群的名称(单机下不生效)。
is_foreignf资源池不用于逻辑集群之外的用户(单机下不生效)。

img 须知: openGauss不允许对default_pool参数进行修改。

235.2 前提条件

已熟悉CREATE RESOURCE POOL、ALTER RESOURCE POOL和DROP RESOURCE POOL语法的使用。

235.3 操作过程

235.3.1 创建资源池
  1. 使使用gsql访问openGauss数据库。

  2. 创建组资源池关联到指定的子Class控制组。例如下面:名称为“resource_pool_a”的组资源池关联到了“class_a”控制组。

    openGauss=# CREATE RESOURCE POOL resource_pool_a WITH (control_group='class_a');
    openGauss=# CREATE RESOURCE POOL resource_pool_b WITH (control_group='class_b');
    CREATE RESOURCE POOL
    
  3. 创建业务资源池关联到指定的Workload控制组。例如下面:名称为“resource_pool_a1”的业务资源池关联到了“workload_a1”控制组。

    openGauss=# CREATE RESOURCE POOL resource_pool_a1 WITH (control_group='class_a:workload_a1');
    openGauss=# CREATE RESOURCE POOL resource_pool_a2 WITH (control_group='class_a:workload_a2');
    openGauss=# CREATE RESOURCE POOL resource_pool_b1 WITH (control_group='class_b:workload_b1');
    openGauss=# CREATE RESOURCE POOL resource_pool_b2 WITH (control_group='class_b:workload_b2');
    CREATE RESOURCE POOL
    

    img 说明:

    • 如果在创建资源池的时候不指定所关联的控制组,则该资源池会被关联到默认控制组(DefaultClass控制组下的“Medium” Timeshare控制组)。
    • control_group取值区分大小写,指定时要使用单引号或双引号。
    • 若数据库用户指定Timeshare控制组代表的字符串,即“Rush”、“High”、“Medium”或“Low”其中一种,如control_group的字符串为“High”,代表资源池指定到DefaultClass控制组下的“High” Timeshare控制组。
    • control_group可以指定用户创建Workload控制组,即’class1:wd’,也可以带有控制组的级别,例如:‘class1:wd:2’,这个级别范围一定要在1-10的范围内,但这个级别将不做任何区分作用。在旧版本中,允许创建同名Workload控制组,以级别进行区分。但新版本升级后,不允许创建同名控制组,用户如在旧版本中已创建同名Workload控制组,使用过程中其级别将不进行区分,由此可能造成的控制组不明确使用的问题,需要用户自行把旧的同名控制组删除以明确控制组使用。
235.3.2 管理资源池

修改资源池的属性。例如下面:修改资源池“resource_pool_a2”关联的控制组为“class_a:workload_a1”(假设class_a:workload_a1未被其他资源池关联)。

openGauss=# ALTER RESOURCE POOL resource_pool_a2 WITH (control_group="class_a:workload_a1");
ALTER RESOURCE POOL
235.3.3 删除资源池

删除资源池。例如下面删除资源池“resource_pool_a2”。

openGauss=# DROP RESOURCE POOL resource_pool_a2;
DROP RESOURCE POOL

img 说明:

  • 如果某个角色已关联到该资源池,无法删除。
  • 多租户场景下,如果删除组资源池,其业务资源池都将被删除。只有不关联用户时,资源池才能被删除。

235.4 查看资源池的信息

img 须知:

  • 不允许使用INSERT、UPDATE、DELETE、TRUNCATE操作资源负载管理的系统表pg_resource_pool。
  • 不允许修改资源池的memory_limit和cpu_affinity属性。
  • 查看当前集群中所有的资源池信息。

    openGauss=# SELECT * FROM PG_RESOURCE_POOL;
    
       respool_name   | mem_percent | cpu_affinity |    control_group    | active_statements | max_dop | memory_limit | parentid | io_limits | io_priority |  nodegroup   | is_foreign  | max_worker
    ------------------+-------------+--------------+---------------------+-------------------+---------+--------------+----------+-----------+--------------+--------------+------------
     default_pool     |         100 |           -1 | DefaultClass:Medium |                -1 |       1 | 8GB          |        0 |         0 | None        | InstallationGuide | f  |
     resource_pool_a  |          20 |           -1 | class_a             |                10 |       1 | 8GB          |        0 |         0 | None        | InstallationGuide | f  |
     resource_pool_b  |          20 |           -1 | class_b             |                10 |       1 | 8GB          |        0 |         0 | None        | InstallationGuide | f  |
     resource_pool_a1 |          20 |           -1 | class_a:workload_a1 |                10 |       1 | 8GB          |    16970 |         0 | None        | InstallationGuide | f  |
     resource_pool_a2 |          20 |           -1 | class_a:workload_a2 |                10 |       1 | 8GB          |    16970 |         0 | None        | InstallationGuide | f  |
     resource_pool_b1 |          20 |           -1 | class_b:workload_b1 |                10 |       1 | 8GB          |    16971 |         0 | None        | InstallationGuide | f  |
     resource_pool_b2 |          20 |           -1 | class_b:workload_b2 |                10 |       1 | 8GB          |    16971 |         0 | None        | InstallationGuide | f  |
    (7 rows)
    
  • 查看某个资源池关联的控制组信息,具体内容可以参考统计信息函数章节的gs_control_group_info(pool text)函数。

    如下命令中“resource_pool_a1”为资源池名称。

    openGauss=# SELECT * FROM gs_control_group_info('resource_pool_a1');
    
            name         |  class  |  workload   | type  | gid | shares | limits | rate | cpucores
    ---------------------+---------+-------------+-------+-----+--------+--------+------+----------
     class_a:workload_a1 | class_a | workload_a1 | DEFWD |  87 |     30 |      0 |    0 | 0-3
    (1 row)
    

    表 3 gs_control_group_info属性

    属性属性值说明
    nameclass_a:workload_a1class和workload名称
    classclass_aClass控制组名称
    workloadworkload_a1Workload控制组名称
    typeDEFWD控制组类型(Top、CLASS、BAKWD、DEFWD、TSWD)
    gid87控制组id
    shares30占父节点CPU资源的百分比
    limits0占父节点CPU核数的百分比
    rate0Timeshare中的分配比例
    cpucores0-3CPU核心数

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1488882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索Ubuntu命令行:常见问题与解决方案

一、引言 Ubuntu,作为一款流行的Linux发行版,其命令行界面(CLI)为用户提供了丰富的功能和灵活性。然而,对于新手来说,命令行可能会带来一些挑战。本文将探讨一些在使用Ubuntu命令行时可能遇到的问题及其解决…

Python算法100例-3.1 回文数

完整源代码项目地址&#xff0c;关注博主私信源代码后可获取 1.问题描述2.问题分析3.算法设计4.确定程序框架5.完整的程序6.问题拓展7.巧用字符串技巧 1&#xff0e;问题描述 打印所有不超过n&#xff08;取n<256&#xff09;的其平方具有对称性质的数&#xff08;也称回…

加密与安全_ 凯撒密码

文章目录 Pre概述Code 实现 凯撒密码字母频率分析攻击Code解密凯撒密码 小结 Pre PKI - 02 对称与非对称密钥算法 概述 凯撒密码是一种简单的替换加密技术&#xff0c;也称为移位密码。它是古典密码学中最早的密码之一&#xff0c;得名于古罗马军队领袖凯撒尤利乌斯&#xff…

VMware虚拟机安装Linux

1.新建虚拟机 2. 安装操作系统 等待 选择中文 点软件选择 选择下面的GNOME桌面 禁用KDUMP 点进安装位置&#xff0c;点完成就可以了 网络连接&#xff0c;右上角打开 开始安装&#xff0c;输入ROOT密码&#xff0c;创建用户 点击重启&#xff0c;等待 重启完成之后出现下面的界…

MATLAB环境下基于离散小波变换的心电信号伪影去除及PQRST波检测

可穿戴个人健康监护系统被广泛认为是下一代健康监护技术的核心解决方案。监护设备不断地感知、获取、分析和存储大量人体在日常活动中的生理数据&#xff0c;为人体的健康状况提供必要的、准确的、集成的和长期的评估和反馈。在心电监测领域&#xff0c;可穿戴传感器具有以下应…

镜头畸变模型及去畸变的原理

1. OpenCV去畸变undistortPoints原理解析 Opencv中镜头畸变包含了径向畸变和切向畸变&#xff0c;本章节主要阐述镜头畸变模型以及去畸变的原理。 1.1 镜头畸变模型 参考opencv文档 https://docs.opencv.org/3.1.0/d4/d94/tutorial_camera_calibration.html&#xff0c;opencv…

布隆过滤器实战

一、背景 本篇文章以解决实际需求的问题的角度进行切入&#xff0c;探讨了如果使用布隆过滤器快速丢弃无效请求&#xff0c;降低了系统的负载以及不必要的流量。 我们都知道布隆过滤器是以占用内存小&#xff0c;同时也能够实现快速的过滤从而满足我们的需求&#xff0c;本篇…

⭐每天一道leetcode:27.移除元素(简单;vector)

⭐今日份题目 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中…

更新至2023年,上市公司ESG数据合集(四份数据:盟浪、华证、商道融绿、富时罗素)

更新至2023年&#xff0c;上市公司ESG数据合集&#xff08;四份数据&#xff1a;盟浪、华证、商道融绿、富时罗素&#xff09; 1、时间&#xff1a; 富时罗素ESG评分&#xff1a;2018-2023年 华证ESG评级&#xff1a;2009-2023年 盟浪ESG评级&#xff1a;2014-2023 商道融…

【Linux】输入系统应用

# 前置知识 (1)输入子系统分为三层&#xff0c;分别是事件处理层、核心层、设备驱动层&#xff1b; (2)鼠标移动、键盘按键按下等输入事件都需要通过设备驱动层→核心层→事件处理层→用户空间&#xff0c;层层上报&#xff0c;直到应用程序; 事件处理层 (1)事情处理层主要是负…

数码管的动态显示(一)

1.原理 把每一个数码管闪烁的时间设置为1ms&#xff0c;肉眼观察不到就会认为6个数码管在同时闪烁。 实验目标&#xff1a; 使用6位8段数码管实现数码管的动态显示&#xff0c;显示的内容就是0-999_999。当计数到最大值&#xff0c;让他归零&#xff0c;然后循环显示。每0.1秒…

【嵌入式移植】8、U-Boot源码分析5—启动过程分析start.S

U-Boot源码分析5—启动过程分析start.S 1、boot0.h2、reset2.1、vectors2.2、ELn2.2.1 EL32.2.2、EL2、EL1 2.3、SMPEN2.3、core errate2.4、lowlevel_init 前面从U-Boot编译的角度分析了其Makefile、链接脚本等&#xff0c;本章开始正式分析U-Boot启动过程 从上一篇文章7、U-…

30天JS挑战(第十六天)----鼠标拖影效果

第十六天挑战(鼠标拖影效果) 地址&#xff1a;https://javascript30.com/ 所有内容均上传至gitee&#xff0c;答案不唯一&#xff0c;仅代表本人思路 中文详解&#xff1a;https://github.com/soyaine/JavaScript30 该详解是Soyaine及其团队整理编撰的&#xff0c;是对源代…

20 个不同的 Python 函数实例

Python 是一种广泛使用的高级编程语言&#xff0c;其函数是 Python 编程中至关重要的概念之一。函数是一段可以重复使用的代码块&#xff0c;可以接收输入参数并返回输出结果。使用函数能够提高代码的可读性、可维护性和重用性。 基础知识 在 Python 中&#xff0c;函数使用关…

[动态规划]---part1

前言 作者&#xff1a;小蜗牛向前冲 专栏&#xff1a;小蜗牛算法之路 专栏介绍&#xff1a;"蜗牛之道&#xff0c;攀登大厂高峰&#xff0c;让我们携手学习算法。在这个专栏中&#xff0c;将涵盖动态规划、贪心算法、回溯等高阶技巧&#xff0c;不定期为你奉上基础数据结构…

LeetCode-02

225. 用队列实现栈 用两个队列实现栈的功能&#xff0c;思路如下&#xff1a; 往空队列中放新元素把非空队列中的元素依次放入刚才添加了新元素的队列&#xff0c;直到非空队列变为空队列 class MyStack(object):def __init__(self):self.queue1 []self.queue2 []def push(…

thymeleaf 一个莫名其妙的错误提示 org.attoparser.ParseException

thymeleaf 一个莫名其妙的错误提示 介绍 开发过程中遇到一个莫名奇妙的错误&#xff0c;一时竟然不知道怎么解决&#xff0c;找官网也没有找到 问题 页面显示 错误日志 org.attoparser.ParseException: (Line 96, Column 5) Malformed markup: Attribute “}” appears m…

医学大数据|统计基础|医学统计学(笔记):开学说明与目录

开始学习统计基础&#xff0c;参考教材&#xff1a;医学统计学第五版 点点关注一切来学习吧 责任编辑&#xff1a;医学大数据刘刘老师&#xff1a;头部医疗大数据公司医学科学部研究员 邮箱&#xff1a;897282268qq.com 久菜盒子工作室 我们是&#xff1a;985硕博/美国全奖…

【开源】SpringBoot框架开发数据可视化的智慧河南大屏

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 A4.2 数据模块 B4.3 数据模块 C4.4 数据模块 D4.5 数据模块 E 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的数据可视化的智慧河南大屏&#xff0c;包含了GDP、…

js面试 forEach ,map,for ,for in , for of

forEach ,map&#xff0c;for ,for in , for of 1 forEach 回调3个参数value&#xff0c;index&#xff0c;arr&#xff08;原数组&#xff09; 2 map 1&#xff1a;map() 不会改变原始数组 2&#xff1a;函数的作用是对数组中的每一个元素进行处理&#xff0c;返回新的元素…