当 GUC 参数 enable_dynamic_workload 设置为 on
当 GUC 参数 enable_dynamic_workload 设置为 on 的时候就代表是动态负载管理模式。动态负载管理的情况下,pgxc_stat_activity 视图中 enqueue 字段会有 waiting in respool queue 和 waiting in global queue。
1)简单作业和复杂作业的定义
动态负载管理下优化器估算内存大于 32M 认为是复杂作业,反之认为是简单作业。
运行中的作业复杂简单情况可以通过 PG_SESSION_WLMSTAT 中的 attribute 字段查看。
2)动态负载管理相关说明
- 集群有一个 CN 会作为中心协调节点(CCN),用于收集和调度作业执行,该节点可以通过 cm_ctl query -Cv 查询到,Central Coordinator State 会显示其状态。当 CCN 不存在时,作业不再受动态负载管理控制。
- CCN 上包含全局内存管控队列和资源池队列,目前暂不支持跨队列优先级,在以下场景下优先级低的作业可能优先下发:如果优先级高的作业在全局内存管控队列排队,优先级低的作业在资源池队列排队,则优先级低的作业会优先下发。
- 单 CN 上依然受到 max_active_statements 参数限制,但不是强制限制,实际运行的作业可能稍微大于该数值。
- 简单查询作业(估算值 < 32MB)、非 DML(即非 INSERT、UPDATE、DELETE 和 SELECT)语句,不走自适应负载,需要通过 max_active_statements 来进行单 CN 的上限控制。
- 默认 work_mem 数值为 512MB,在自适应负载特性下,该数值不能变大,否则会引起内存不受控(例如未做 Analyze 的语句)。
- 作业估算内存小于等于 0 时,如果强制将作业指定为慢车道管控,作业不会发往 CCN 管控将直接运行。
- 以下场景或语句由于内存使用特殊性和不确定性,可能导致大并发场景内存不受控,如果遇到需要降低并发数。
- 单条元组占用内存过大的场景,例如,基表包含超过 MB 级别的宽列。
- 完全下推语句的查询。
- 需要在 CN 上耗费大量内存的语句,例如,不能下推的语句,withhold cursor 场景。
- 由于计划生成不当导致 hashjoin 算子建立的 hash 表重复值过多,占用大量内存。
- 包含 UDF 的场景,且 UDF 中使用大量内存的场景。
3)短查询加速(默认开启,建议开启)
混合负载场景下,复杂查询可能会长时间占用大量资源,虽然简单查询执行时间短、消耗资源少,但是因为资源耗尽,简单查询不得不在队列中等待复杂查询执行完成。为提升执行效率、提高系统吞吐量,GaussDB (DWS) 的 “短查询加速” 功能,实现对简单查询的单独管理。
- 开启短查询加速后,简单查询与复杂查询分开管理。
- 关闭短查询加速后,简单查询与复杂查询执行相同的工作负载管理。
虽然单个简单作业资源消耗少,但是大量简单作业并发运行还是会占用大量资源,因此短查询加速开启情况下,需要对简单查询进行并发管理;资源管理可能会影响查询性能,影响系统吞吐量,因此简单查询不进行资源管理,异常规则也不生效。
设置方法:
- 通过 GUC 参数 wlm_query_accelerate 设置
- 通过资源池 alter resource pool query_pool with (short_acc='f');
当 GUC 参数 enable_dynamic_workload 设置为 on相关推荐
- postgresql源码学习(45)—— PostmasterMain(2) GUC参数简介及设置
一. GUC参数简介 1. 参数分类 GUC(Grand Unified Configuration)参数,其实指的就是pg中的各类参数.如果按生效时分类,主要有以下6类(guc.h文件): type ...
- postgresql GUC 参数
GUC: Grand Unified Configuration 指的是postgreSQL数据库的一种对数据库变量进行设置对数据库进行控制的机制.通常理解是对postgresql.conf文件中变量 ...
- PostgreSQL GUC 参数级别介绍
想不想知道是什么 标签 PostgreSQL , 参数 , 参数级别 背景 在添加GUC参数时,需要注意你添加的参数属于什么类别的参数. 例如如果你想让普通用户能随时修改它,那么你需要将参数级别设置为 ...
- PostgreSQL 15 preview -:你了解PostgreSQL GUC 参数吗?
开篇灵魂四问 你知道哪些GUC参数没有在postgresql.conf中显示吗? 你知道哪些GUC参数在show all时没有显示吗? 你知道哪些GUC参数在reset all时不会被重置吗? 你知道 ...
- PG守护进程(Postmaster)——DefineCustomTypeVariable定义GUC参数
DefineCustomTypeVariable函数是提供给插件定义GUC参数的函数. struct config_int {struct config_generic gen;/* constant ...
- 向插件中添加guc参数
添加GUC参数vb_casesensitive,设置数据库的大小写敏感. 如为on,则大小写敏感,则与现行数据库实现一致,加双引号大小写敏感,不加双引号默认小写大小写不敏感:如为off,大小写不敏感, ...
- R语言ggplot2可视化分面图(facet_wrap)、使用size参数自定义设置分面图标签栏(灰色标签栏)中的标签文本的字体大小
R语言ggplot2可视化分面图(facet_wrap).使用size参数自定义设置分面图标签栏(灰色标签栏)中的标签文本的字体大小 目录
- R语言plotly包可视化线图(line plot)、使用restyle参数自定义设置可视化结果中线条的颜色、使用按钮动态切换线条的颜色(change line color with button)
R语言plotly包可视化线图(line plot).使用restyle参数自定义设置可视化结果中线条的颜色.使用按钮动态切换线条的颜色(change line color with button i ...
- R语言merge函数全连接dataframe数据(Full (outer) join)、merge函数进行全连接必须将参数all设置为true(all=TRUE)、默认merge函数通过公共列名合并数
R语言merge函数全连接dataframe数据(Full (outer) join).merge函数进行全连接必须将参数all设置为true(all=TRUE).默认merge函数通过公共列名合并数 ...
最新文章
- 解决wamp、vertrigo等集成环境安装后apache不能启动的问题
- 1、Power View—使用前的准备
- Entity Framework Core Lolita
- centos 7 mysql随机密码_在centos中安装了mysql5.7之后解决不知道随机的密码的问题...
- JAVA构架之并发编程的一些总结
- 按钮固定在页面底端html,css实现按钮固定在底部
- 做IM netty的优势
- linux服务器数据库和监听自启动,linux64的神通数据库安装与启动
- dell电脑恢复出厂系统(旧电脑如何重装系统)
- UINO优锘:深度|扒一扒图化资源申请之三生三世那点事儿
- 爱国者p8880e java_口袋里的电脑 爱国者P8880E MID评测
- 教程篇(7.0) 01. 介绍FortiClient和FortiClient EMS ❀ FortiClient EMS ❀ Fortinet 网络安全专家 NSE 5
- 虚拟机增加一块新硬盘
- 图像分辨率+像素+尺寸+文件内存大小
- springboot 自定义拦截器 防止恶意请求
- shell计算命令-bc命令详解
- 微信小程序之首页轮播图片自适应高度
- Win32输入法编程技术的分析研究
- 微型计算机及控制技术试题,微型计算机控制技术试卷
- oracle sql 优化分析点