当 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相关推荐

  1. postgresql源码学习(45)—— PostmasterMain(2) GUC参数简介及设置

    一. GUC参数简介 1. 参数分类 GUC(Grand Unified Configuration)参数,其实指的就是pg中的各类参数.如果按生效时分类,主要有以下6类(guc.h文件): type ...

  2. postgresql GUC 参数

    GUC: Grand Unified Configuration 指的是postgreSQL数据库的一种对数据库变量进行设置对数据库进行控制的机制.通常理解是对postgresql.conf文件中变量 ...

  3. PostgreSQL GUC 参数级别介绍

    想不想知道是什么 标签 PostgreSQL , 参数 , 参数级别 背景 在添加GUC参数时,需要注意你添加的参数属于什么类别的参数. 例如如果你想让普通用户能随时修改它,那么你需要将参数级别设置为 ...

  4. PostgreSQL 15 preview -:你了解PostgreSQL GUC 参数吗?

    开篇灵魂四问 你知道哪些GUC参数没有在postgresql.conf中显示吗? 你知道哪些GUC参数在show all时没有显示吗? 你知道哪些GUC参数在reset all时不会被重置吗? 你知道 ...

  5. PG守护进程(Postmaster)——DefineCustomTypeVariable定义GUC参数

    DefineCustomTypeVariable函数是提供给插件定义GUC参数的函数. struct config_int {struct config_generic gen;/* constant ...

  6. 向插件中添加guc参数

    添加GUC参数vb_casesensitive,设置数据库的大小写敏感. 如为on,则大小写敏感,则与现行数据库实现一致,加双引号大小写敏感,不加双引号默认小写大小写不敏感:如为off,大小写不敏感, ...

  7. R语言ggplot2可视化分面图(facet_wrap)、使用size参数自定义设置分面图标签栏(灰色标签栏)中的标签文本的字体大小

    R语言ggplot2可视化分面图(facet_wrap).使用size参数自定义设置分面图标签栏(灰色标签栏)中的标签文本的字体大小 目录

  8. R语言plotly包可视化线图(line plot)、使用restyle参数自定义设置可视化结果中线条的颜色、使用按钮动态切换线条的颜色(change line color with button)

    R语言plotly包可视化线图(line plot).使用restyle参数自定义设置可视化结果中线条的颜色.使用按钮动态切换线条的颜色(change line color with button i ...

  9. R语言merge函数全连接dataframe数据(Full (outer) join)、merge函数进行全连接必须将参数all设置为true(all=TRUE)、默认merge函数通过公共列名合并数

    R语言merge函数全连接dataframe数据(Full (outer) join).merge函数进行全连接必须将参数all设置为true(all=TRUE).默认merge函数通过公共列名合并数 ...

最新文章

  1. UVa712 S-Trees满二叉树
  2. 【开发软件】推荐一款MAC OS X 下php集成开发环境mamp
  3. java中堆和栈有什么区别?
  4. diamond升级IP,覆盖的时候报错
  5. 依据imu姿态角计算z轴倾角_[姿态估计] DenseFusion详解
  6. 风控扫盲:巴塞尔下的分池与量化风控岗
  7. pwershell custom objects
  8. Tomcat SSL Configuration
  9. vue学习-vuex状态
  10. Qt实现带验证码的输入框
  11. 天天生鲜商品详情页HTML+css
  12. field方法的用法
  13. 中文编程从入门到精通中文编程语言教学视频
  14. springboot蛋糕甜品点销售商城系统java
  15. 异地多活高可用架构设计实践与思考
  16. 二极管ss14测量_开关二极管怎么测量好坏
  17. 线段树 HDU 4046 panda
  18. 义乌集训Day 6 T2
  19. 跨境早报| 亚马逊FBA推配送新服务!Shopee全面开放巴西站点广告功能
  20. GreenPlum 触发执行vacuum

热门文章

  1. 分享一组惠斯通电桥温度补偿前后的图像
  2. 酷狗账号登陆服务器繁忙,酷狗音乐账号无法登陆如何解决?账号无法登陆原因及解决方法介绍...
  3. php文件上传及mime类型大全
  4. 星起航:抖音小店怎么设置达人佣金
  5. C++编程规范(参考Google、华为)
  6. 徐敏 计算机科学教育,计算机学院举办梦想公开课暨2019年暑期社会实践动员大会...
  7. iOS使用HHealthKit读取修改健康步数
  8. 关于NTLDR的一些注意事项
  9. Avoid The Lakes(避开湖泊C++)
  10. 鸿蒙生态圈什么意思,鸿蒙是什么意思(鸿蒙的解释)