GreenPlum的那些事《五》——浅谈GPDB中的资源队列

简介: 浅谈GPDB中的资源队列

资源队列介绍

当你安装好数据库的时候就会有一个默认的资源队列 pg_default,所有用户默认使用该队列。
GPDB建议你对不同类型的用户建立不同的资源队列,比如你有超级用户,WEB查询用户,报表用户还有个人用户等,你就需要根据用户使用场景和需求的不同,创建不同的资源队列进行分配。资源队列主要做了以下工作:

  • 查询数。对用户最大查询的并发数进行控制。
  • 内存。对用户查询需要的内存资源进行控制。
  • 优先级。对不同资源队列进行优先级区分。
  • 查询成本。对每个查询需要的查询成本进行控制,此处的查询成本是指执行计划中的costs。

一个资源队列可以对应多个用户,但是一个用户只能有一个有效注册的资源队列。

资源队列如何起作用

在世纪执行过程中,如果一个SQL执行的所需要的资源没有超过资源队列,那么它会立刻执行。如果执行的SQL超过了资源队列限制的资源,比如超过了最大并发数,那么该次执行就会等待,等到资源释放后,才能执行。资源队列针对执行的SQL,采用FIFO原则,即先进先出。如果资源队列设置了优先级,那么多个资源队列之间就会优先执行优先级高的用户操作。
资源队列样例

拥有SUPERUSER 角色的用户总是优先执行,不受资源队列的限制。

内存限制如何起作用

内存限制是指用户在执行SQL时候使用的最大内存,GPDB的队列内存设置并不是每个SQL都能达到这个内存。比如一个队列设置最大内存为2000MB,最大回话数为10,那么默认每个SQL最大的执行内存为200MB。通过设置 statement_mem 可以调整这种情况,详细见 Creating Queues with Memory Limits

优先级如何起作用

在任务执行期间,相同优先级的任务会平分资源,比如查询1和查询2,是同一个优先级队列下的任务,那么他们评分CPU资源。这时候来了一个查询3,是低优先级的,那么查询1和查询2的总资源会减少,但是还是会平分资源的。大概的资源分布见下图(百分比并不代表世纪的使用百分比,知识示例)
CPU利用

目录
相关文章
|
7月前
|
弹性计算 关系型数据库 Serverless
RDS MySQL Serverless资源与负载自适应
本场景主要介绍如何创建RDS Serverless版实例、配置RDS Serverless版实例和体验RDS Serverless动态计费。
254 0
|
存储 Cloud Native 关系型数据库
PolarDB MySQL 弹性多机并行深度剖析
背景并行查询(Parallel Query)是自PolarDB MySQL诞生伊始就致力于研发的企业级查询加速功能,这与PolarDB的产品定位密切相关,基于云原生的计算存储分离使底层数据量远突破单机容量的限制,而针对更海量数据的复杂分析、报表类业务也成为用户自然而然的需求,同时由于PolarDB是服务于在线业务(OLTP)的关系数据库系统,用户会希望分析业务能具有"在线"的能
823 0
PolarDB MySQL 弹性多机并行深度剖析
|
SQL JSON 关系型数据库
扩展我们的分析处理服务(Smartly.io):使用 Citus 对 PostgreSQL 数据库进行分片
扩展我们的分析处理服务(Smartly.io):使用 Citus 对 PostgreSQL 数据库进行分片
277 0
扩展我们的分析处理服务(Smartly.io):使用 Citus 对 PostgreSQL 数据库进行分片
|
数据库 SQL
将Greenplum并行备份恢复到配置不同的新集群
在Greenplum中,我们可以使用 gp_restore 或者 gpdbrestore 对数据库进行并行恢复,但是并行恢复要求要恢复的新集群与备份集群拥有同样的配置(节点实例数量)。但是如果我们的新集群节点数与原集群不一样怎么办?还能使用原备份文件吗?答案是肯定的,但是由于节点数量不一样了,我们只能通过Master节点进行非并行备份。
3958 0
|
存储 SQL Cloud Native
PolarDB 并行查询的前世今生
本文会深入介绍PolarDB MySQL在并行查询这一企业级查询加速特性上做的技术探索、形态演进和相关组件的实现原理,所涉及功能随PolarDB MySQL 8.0.2版本上线。
969 2
PolarDB 并行查询的前世今生
|
存储 SQL Cloud Native
PolarDB 并行查询深入剖析
本文会深入介绍PolarDB MySQL在并行查询这一企业级查询加速特性上做的技术探索、形态演进和相关组件的实现原理,所涉及功能随PolarDB MySQL 8.0.2版本上线。背景PolarDB云的兴起为古老而顽固的数据库市场带来了新的发展机遇,据Gartner预测,到 2022 年,所有数据库中将有 75% 部署或迁移到云平台,云原生数据库的诞生为各个数据库厂商、云服务供应商提供了弯道超车的绝
588 0
|
SQL 监控 数据可视化
|
存储 SQL 分布式计算
|
SQL 弹性计算 缓存
DRDS和RDS只读实例性能对比测试
我们都知道,对于数据库中基础信息表来说,它的数据变化频率低,数据量小,但由于基础数据本身的特点,大多数相关系统都会对频繁地读取它。即便我们通过对数据调取服务进行服务化包装,通过HSF服务的方式对外暴露,以减少多个系统直接操作数据库带来的问题,但数据本身的读取频率和并发度都非常高,QPS可以轻易达到10万以上。
DRDS和RDS只读实例性能对比测试
|
SQL 弹性计算 Oracle
阿里云rds PG, PPAS PostgreSQL 同实例,跨库数据传输、访问(postgres_fdw 外部表)
标签 PostgreSQL , 阿里云rds , pg , ppas , 跨库查询 , 外部表 , postgres_fdw 背景 如果你使用pg或ppas作为实时数仓,并且有跨库数据传输(ods, dw, dm 分层结构)的需求,可以使用postgres_fdw外部表实现,不需要使用ETL工具对数据进行抽取和导入这种无用功操作。 postgres_fdw是PG的一个外部表插件,可读,
1195 0