首页 > 其他分享 >greenplum资源队列

greenplum资源队列

时间:2023-02-02 16:14:59浏览次数:35  
标签:RESOURCE gp 队列 greenplum 查询 QUEUE 资源

 greenplum的资源队列

 

1.资源队列的基本原理

    资源队列存在的目的是为了防止多个会话同时执行,争夺系统资源和避免造成资源耗尽,如Memory、CPU、磁盘I/O这三种资源。

在gp中可以将多个role放在一个资源队列内,然后对这个资源队列进行限制,可以指定共享cpu资源的优先级

(关于优先级在资源队列中的效果似乎并不明显,在后续版本中增加的资源组才会有明显的效果)。

 

2.资源队列的工作原理

    资源队列在gp中是默认打开的,每一个新建的的role都会且是必须分配一个资源队列。如果在创建role时没有指定,

将会默认分配到pg_default这个数据库自带的资源队列中。

 

目前资源队列可以限制的参数

    1.活动语句数量。就是指一个资源队列最多可以同时执行多少个会话。

    2.活动语句内存使用量。一个资源队列下所有的role提交的语句所使用的内存资源总和不能超过这个值。

    3.活动语句优先级。该值规定了资源队列之间使用cpu的优先级。但是这个优先级是相对的。

    4.活动语句的成本。该值是由查询规划器做的成本评估。

 

    在数据库运行时,用户提交一个查询,这个查询就会被所在的资源队列的限制进行评估。如果评估认为该查询所消耗的资源

不会超过限制,该查询就会立即执行。如果评估认为该查询超过了资源限制,该查询需要等到有足够的资源时才能得到执行。

查询的方式是先进先出的原则进行排队。在查询优先级启用的情况下,系统会定期的重新分配计算资源。另外,SUPERUSER是不受资源队列限制的。

会立即执行,无视所在资源队列的限制。

 

3.与资源队列的相关语法

创建资源队列语法

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}:设置和资源队列相关查询的优先级.

 

修改变更资源队列

使用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);

 

删除资源队列

要删除一个资源队列,该队列不能与任何ROLE相关,使用DROP RESOURCE QUEUE命令删除资源队列。

DROP RESOURCE QUEUE zy;

 

添加用户到资源队列中

赋予role资源管理队列

alter role hank resource queue zy;

 

恢复到使用默认的资源队列

ALTER ROLE hank RESOURCE QUEUE none;

 

资源队列的相关查询语句

通过以下视图可以查看到参数内容

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;

标签:RESOURCE,gp,队列,greenplum,查询,QUEUE,资源
From: https://www.cnblogs.com/xurui96/p/17086322.html

相关文章

  • greenplum数据库、模式、表空间、role的含义与关系
    greenplum数据库、模式、表空间、role的含义与关系(基于4.3.30版本)role在GP中是通过role来控制数据库的访问权限,role包含两个概念一个是user一个是group。两者的创建方式......
  • greenplum集群实例频繁宕机
    环境描述:名称版本操作系统Linuxversion:redhat7.4GreenplumDatabase:greenplum4.3.30.4 问题描述:在生产环境中我们所维护的greenplum集......
  • maven资源文件打包过程
    一般地,我们的src/main/resources目录下有很多配置文件,比如jdbc.properties配置文件;当编译或打包的时候,会使用插件maven-resources-plugin的resources目标,将src/main/resou......
  • maven资源文件排除某些资源的配置
    <resource>    <!--指定资源文件的目录-->    <directory>${project.basedir}/src/main/resources</directory>    <!--是否开启过滤替换配置,默认是不开启......
  • 通过HH8WilEdit学习WIL 文件编码 3 资源文件实例,导出WIL.RES中的WIL,WIX文件
     unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;typeTForm1=class(TFor......
  • gbase资源队列
     从创建资源消费组到激活资源队列,上图是v95版本的创建流程v86版本的gbase已下列流程为准。 上图是对应关系1)创建资源消费组CREATECONSUMERGROUP xrgroupCOMMEN......
  • gbase资源组修改内存
    1)登录数据集市数据库gccli-ugbase-ppwd 2)查看有哪些数据库showdatabases; 3)选择数据库usegbase; 4)查看现有的资源池名与分配的内存量(单位是b)selectresou......
  • 【研究生】研究生资源汇总
    研究生资源输入文献搜索虫部落(学术搜索门户)文献翻译有道词典学生认证免费全文翻译开源翻译:CopyTranslate输出笔记Markdown+VSCode思维导图:Markdown+Mar......
  • 栈和队列的方向很重要
    最近做算法题.https://www.acwing.com/problem/content/description/75/对于队列的理解很重要.队列的head在左边.tail在右边.栈的top在右边.栈低在左边.因为用的都......
  • 数据结构-数据模拟队列
    模拟单向队列classArrayQueue{privateintmaxSize;privateintfront;privateintrear;privateint[]arr;publicArrayQueue(intmaxSize......