功能介绍
GaussDB(DWS)资源池的具体功能包括:并发管理、内存管理、CPU管理以及异常规则。
并发管理
并发,即资源池中的最大查询并发数。并发管理作为运行前管理,用于限制查询并发运行的数量,通过限制查询并发数降低资源争抢,保证资源的有序高效利用。
在资源池页面“短查询配置”一栏,您可以通过开关键决定是否开启短查询加速功能。如果需要对简单语句并发数(默认值为-1,0 或-1表示不控制)进行修改,可选择打开短查询加速。
并发管理规则如下:
- 短查询加速开启,复杂查询受资源池并发控制,简单查询受短查询并发控制。
- 短查询加速关闭,复杂查询和简单查询均受资源池并发控制,短查询并发控制无效。
内存管理
内存资源,即资源池所占用的内存百分比。
内存管理的目的:防止数据库系统占用内存过高导致内存溢出(OOM)和实现资源池之间的内存隔离和限制。为满足这两个目的,资源管理从以下两方面进行内存管理:
- 全局内存管理
为防止数据库系统使用内存过大导致OOM,设置数据库系统全局内存上限(max_process_memory),对数据库全局内存进行管理。全局内存管理包含运行前管理和运行中管理,运行中管理防止实际使用内存超限,运行前管理防止查询执行过程中报错,具体如下:
- 资源池内存管理
资源池内存管理属于专属限额的管理方式,即资源池分配多少内存就只能使用多少内存,空闲出来的内存其他资源池不能使用。
资源池内存分配采用百分比方式,取值范围0~100。0表示资源池不进行内存管理,100表示资源池进行内存管理且可使用全局所有内存。
所有资源池分配的内存百分比之和不能超过100。资源池内存管理仅管控慢车道查询,且只包含运行前管理,处理逻辑与全局内存运行前管理类似。资源池慢车道查询运行前,进行估算内存统计,当统计内存大于资源池内存时,查询需要排队,等待资源池内其他查询运行结束释放资源后才能运行。
CPU管理
目前支持“共享配额”和“专属限额”两种CPU管理方式:
- CPU共享配额:在CPU系统繁忙的情况下,不同资源池按照共享配额配置分配CPU资源;在CPU系统空闲的情况下,该配置不生效。
- CPU专属限额:限制资源池使用的CPU核数上限,无论CPU系统繁忙或者空闲,该资源池上的作业都无法突破该限额配置。
在资源池页面“资源配置”一栏,您可以修改当前资源池的CPU共享配额和专属限额。
共享配额和专属限额的管理方式各有优劣,共享配额的管理方式可以实现CPU资源的充分利用,但是资源池之间隔离不彻底,可能影响查询性能;专属限额的管理方式可以实现CPU资源的绝对隔离,但是在资源池CPU资源空闲时,会造成资源的浪费。
CPU专属限额仅8.1.3及以上集群版本支持。
异常规则
异常规则用于异常查询的识别和快速处理,防止“低质量SQL”长时间占用大量资源,导致其他查询阻塞或性能下降。
在资源池页面“关联异常规则”一栏,可浏览当前资源池中已绑定的异常规则,绑定新异常规则,解绑已有异常规则。目前支持的异常处理规则如表1 异常规则参数所示。
- 8.2.1及以上集群版本支持降级异常规则,所有异常规则都支持降级行为,降级后仅网络资源抢占降至低优先级,即在正常查询无网络请求时,才会调度降级查询的网络请求。
- 关联、解绑异常规则仅8.2.0及以上集群版本支持。
参数项 |
描述 |
取值范围(0表示不约束) |
操作 |
---|---|---|---|
阻塞时间 |
作业的阻塞时间,包括全局并发排队以及局部并发排队的总时间,单位秒。 例如,如果配置“阻塞时间”为300秒,那么当该资源池中的用户执行的某个作业在阻塞300秒后将被终止。 |
1~2147483647的整数。0表示不约束。 |
终止、降级或不约束 |
执行所消耗时间 |
已经执行的作业从开始执行到当前所消耗的时间,单位为秒。 例如,如果配置“执行所消耗时间”为100秒,那么当该资源池中的用户执行的某个作业在执行超过100秒后将被终止。 |
1~2147483647的整数。0表示不约束。 |
终止、降级或不约束 |
所有DN上CPU总时间 |
作业在所有DN上执行时所耗费的CPU总时间,单位为秒。 |
1~2147483647的整数。0表示不约束。 |
终止、降级或不约束 |
检查倾斜率的时间间隔 |
检查作业执行的CPU倾斜率的间隔时间,单位为秒,需同“所有DN上CPU时间的倾斜率”一起设置。 |
1~2147483647的整数。0表示不约束。 |
终止、降级或不约束 |
所有DN上CPU总时间倾斜率 |
作业在DN上执行时的CPU时间的倾斜率,依赖于“检查倾斜率的时间间隔”的设置。 |
1~100的整数。0表示不约束。 |
终止、降级或不约束 |
单DN算子下盘大小 |
作业在单个DN上最大下盘的数据量,单位MB。
说明:
该异常规则仅8.2.0及以上集群版本支持。 |
1~2147483647的整数。0表示不约束。 |
终止、降级或不约束 |
DN平均消耗CPU占比 |
作业在所有DN上执行时的平均CPU使用率,检测周期不强依赖“检查倾斜率的时间间隔”,若配置将使用该检查间隔,否则系统默认30秒间隔。
说明:
该异常规则仅8.2.0及以上集群版本支持。 |
1~100的整数。0表示不约束 |
终止、降级或不约束 |
单个DN上最大带宽 |
作业在单个DN上最大可占用的网络带宽,单位MB。
说明:
该异常规则仅8.2.1及以上集群版本支持。 |
1~2147483647的整数。0表示不约束。 |
终止、降级或不约束 |