资讯专栏INFORMATION COLUMN

greenplum的资源队列

IT那活儿 / 3394人阅读
greenplum的资源队列

点击上方“IT那活儿”,关注后了解更多内容,不管什么活儿,干就完了!!!


01

资源队列的基本原理


资源队列存在的目的是为了防止多个会话同时执行,争夺系统资源和避免造成资源耗尽,如Memory、CPU、磁盘I/O这三种资源。
在gp中可以将多个role放在一个资源队列内,然后对这个资源队列进行限制,可以指定共享cpu资源的优先级。
注:关于优先级在资源队列中的效果似乎并不明显,在后续版本中增加的资源组才会有明显的效果。


02

资源队列的工作原理


资源队列在gp中是默认打开的,每一个新建的的role都会且是必须分配一个资源队列。
如果在创建role时没有指定,将会默认分配到pg_default这个数据库自带的资源队列中。
目前资源队列可以限制的参数:
a. 活动语句数量。
就是指一个资源队列最多可以同时执行多少个会话。
b. 活动语句内存使用量。
一个资源队列下所有的role提交的语句所使用的内存资源总和不能超过这个值。
c. 活动语句优先级。
该值规定了资源队列之间使用cpu的优先级。但是这个优先级是相对的。
d. 活动语句的成本。
该值是由查询规划器做的成本评估。
在数据库运行时,用户提交一个查询,这个查询就会被所在的资源队列的限制进行评估。
如果评估认为该查询所消耗的资源不会超过限制,该查询就会立即执行。
如果评估认为该查询超过了资源限制,该查询需要等到有足够的资源时才能得到执行。
查询的方式是先进先出的原则进行排队。
在查询优先级启用的情况下,系统会定期的重新分配计算资源。
另外SUPERUSER是不受资源队列限制的,会立即执行,无视所在资源队列的限制。

03

与资源队列的相关语法


3.1 创建资源队列语法
CREATE RESOURCE QUEUE name WITH (queue_attribute=value [, ... ])
参数:
  • name

    资源队列的名字。

  • ACTIVE_STATEMENTS integer

    该参数限制了分配到队列角色所能够执行的查询的数量。

  • MEMORY_LIMIT memory_units

    对于所有从该资源队列中提交的语句设置总内存配额。

  • MAX_COST float

    对查询代价设置了一个最大限制。

  • MIN_COST float

    该是最小查询的最小查询成本限制。

  • PRIORITY={MIN|LOW|MEDIUM|HIGH|MAX}

    设置和资源队列相关查询的优先级。

3.2 修改变更资源队列
使用ALTER RESOURCE QUEUE命令来改变资源队列的限制。
ALTER RESOURCE QUEUE zy WITH (ACTIVE_STATEMENTS=3);
ALTER RESOURCE QUEUE zy WITH (MAX_COST=100000.0);
将活动语句数量或者内存限制重置为无限制,可以使用-1值。
ALTER RESOURCE QUEUE zy WITH (MAX_COST=-1.0, MEMORY_LIMIT=‘2GB’);


改变查询优先级。


ALTER RESOURCE QUEUE zy WITH (PRIORITY=MIN);
3.3 删除资源队列
要删除一个资源队列,该队列不能与任何ROLE相关,使用DROP RESOURCE QUEUE命令删除资源队列。
DROP RESOURCE QUEUE zy;
3.4 添加用户到资源队列中
赋予role资源管理队列。
alter role hank resource queue zy;
恢复到使用默认的资源队列。
ALTER ROLE hank RESOURCE QUEUE none;
3.5 资源队列的相关查询语句
通过以下视图可以查看到参数内容:
select * from pg_resqueue_attributes;


查看资源队列相关使用情况:


SELECT * FROM gp_toolkit.gp_resqueue_status;
查看资源队列统计信息:
SELECT * FROM pg_stat_resqueues;
查询角色分配的资源队列:
SELECT * from gp_toolkit.gp_resq_role;
查询资源队列中的等待查询:
SELECT * FROM gp_toolkit.gp_locks_on_resqueue WHERE lorwaiting=true;
查询活动语句的优先级:
select * from gp_toolkit.gp_resq_priority_statement;


本文作者:徐瑞

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129655.html

相关文章

  • 探索Greenplum实践,了解新一代大数据处理利器

    摘要:上有主节点和从节点两部分,两者主要的功能是生成查询计划并派发,以及协调并行计算,同时在上保存着,这个全局目录存着一组数据库系统本身所具有的元数据的系统表。 前言:近年来,互联网的快速发展积累了海量大数据,而在这些大数据的处理上,不同技术栈所具备的性能也有所不同,如何快速有效地处理这些庞大的数据仓,成为很多运营者为之苦恼的问题!随着Greenplum的异军突起,以往大数据仓库所面临的很多...

    supernavy 评论0 收藏0
  • 数据仓库架构变迁

    摘要:前面我们简单阐述了分布式数据库的架构,并通过一条简单的查询语句解释了分布式的执行计划。 引言 第八届中国架构师大会(SACC2016)10月27号到29号在北京万达索菲特大饭店成功举办。大会以架构创新之路为主题,云集了国内外顶尖专家,共同探讨云计算和大数据等技术背景下,如何通过架构创新及各种IT新技术来带动企业转型增效。作为一家专注于云端数据仓库的初创公司,酷克数据受邀在SACC201...

    Raaabbit 评论0 收藏0
  • 构建可扩展PostgreSQL解决方案

    摘要:这可以通过负载平衡来实现数据分片当问题不是并发查询的数量,而是数据库的大小和单个查询的速度时,可以实现不同的方法。 showImg(https://segmentfault.com/img/remote/1460000018875091); 来源 | 愿码(ChainDesk.CN)内容编辑 愿码Slogan | 连接每个程序员的故事 网站 | http://chaindesk.cn...

    jonh_felix 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<