Oushu DB 管理指南之资源管理(上)

简介: 在任意时刻,OushuDB中可能有很多个并发的查询在运行。这些查询属于不同的用户。用户的优先级可能有高有低。我们需要一种方式 来合理的给各个用户分配其可以使用的系统资源,包括CPU和内存等。

在任意时刻,OushuDB中可能有很多个并发的查询在运行。这些查询属于不同的用户。用户的优先级可能有高有低。我们需要一种方式 来合理的给各个用户分配其可以使用的系统资源,包括CPU和内存等。
OushuDB使用资源队列(Resource Queues)来管理整个系统的资源。每一个OushuDB用户都和一个资源队列关联,该用户发出的所有查询 都会使用该关联的资源队列中的资源。我们可以创建多个资源队列,资源队列之间形成一种树状结构。例如下图:

image.png

图 OushuDB资源队列

其中pg_root和pg_default系统默认已经创建的资源管理队列。pg_root是资源队列树的根。pg_default是其子队列。

当一个用户被创建的时候,默认会被分配到pg_default队列。

下面的语句创建了一个资源队列ceo_report。指定了其最大的并发查询数为20。另外,该队列使用了其父亲队列pg_root的30%内存和CPU资源。

CREATE RESOURCE QUEUE ceo_report WITH (PARENT='pg_root', ACTIVE_STATEMENTS=20,MEMORY_LIMIT_CLUSTER=30%, CORE_LIMIT_CLUSTER=30%);

其中的三个配置参数的意义如下:
● ACTIVE_STATEMENTS:资源队列允许的最大并发查询数,超过这个并发的连接则会排队等待。资源管理器会均匀分配资源到队列中并发的查询。
● MEMORY_LIMIT_CLUSTER:资源队列可以使用的父队列内存的比例
● CORE_LIMIT_CLUSTER:资源队列可以使用的父队列CPU的比例
现在我们可以创建一个用户,使用该资源管理队列:

CREATE ROLE kurt WITH LOGIN RESOURCE QUEUE ceo_report;

这样的话,kurt用户发出的所有查询将使用ceo_report中的资源。
通过下面的命令可以创建上图中的其他的资源队列:

CREATE RESOURCE QUEUE department1 WITH (PARENT='pg_root', ACTIVE_STATEMENTS=10,MEMORY_LIMIT_CLUSTER=5%, CORE_LIMIT_CLUSTER=5%);CREATE RESOURCE QUEUE adhoc1 WITH (PARENT='department1', ACTIVE_STATEMENTS=5,MEMORY_LIMIT_CLUSTER=50%, CORE_LIMIT_CLUSTER=50%);CREATE RESOURCE QUEUE daily_batch WITH (PARENT='department1', ACTIVE_STATEMENTS=5,MEMORY_LIMIT_CLUSTER=50%, CORE_LIMIT_CLUSTER=50%);CREATE RESOURCE QUEUE department2 WITH (PARENT='pg_root', ACTIVE_STATEMENTS=5,MEMORY_LIMIT_CLUSTER=5%, CORE_LIMIT_CLUSTER=5%);CREATE RESOURCE QUEUE monthly_report WITH (PARENT='department2', ACTIVE_STATEMENTS=2,MEMORY_LIMIT_CLUSTER=100%, CORE_LIMIT_CLUSTER=100%);CREATE RESOURCE QUEUE department3 WITH (PARENT='pg_root', ACTIVE_STATEMENTS=5,MEMORY_LIMIT_CLUSTER=5%, CORE_LIMIT_CLUSTER=5%);CREATE RESOURCE QUEUE adhoc2 WITH (PARENT='department3', ACTIVE_STATEMENTS=3,MEMORY_LIMIT_CLUSTER=50%, CORE_LIMIT_CLUSTER=50%);CREATE RESOURCE QUEUE daily_report WITH (PARENT='department3', ACTIVE_STATEMENTS=2,MEMORY_LIMIT_CLUSTER=50%, CORE_LIMIT_CLUSTER=50%);
目录
相关文章
OushuDB 管理指南之资源管理(下)
通常,一个查询的并行度会影响一个查询的性能以及系统的吞吐量。资源管理器分配给一个查询的virtual segment个数决定了一个查询的并行度。 一般情况下,用户不需要人为干预资源管理器对virtaul segment个数的分配,OushuDB资源管理器会很好的管理查询的并行度。但有些时候,用户可能想要控制一个查询的并发度,OushuDB提供了多个 可供用户调控的手段。
148 0
OushuDB  管理指南之资源管理(下)
OushuDB 管理指南之资源管理(中)
在资源队列树中,只有叶子节点可以关联用户接受查询。儿子节点的资源是从父节点中分配出来的。其中一个父节点的所有儿子节点的MEMORY_LIMIT_CLUSTER和 CORE_LIMIT_CLUSTER比例值之和必须小于等于100%。
97 0
OushuDB  管理指南之资源管理(中)
|
资源调度 容器
OushuDB 管理指南之资源管理
如果OushuDB和YARN配合使用,OushuDB可以从YARN申请资源,并把申请到的资源通过资源管理队列重新在查询之间分配。在不使用资源的时候会把资源动态归还给YARN。 你可以在hawq-site.xml中修改如下配置使之生效。
109 0
OushuDB 管理指南之资源管理
|
关系型数据库
openstack 命令行管理四 - 资源管理 (备忘)
 配额用于对每个 tenants 进行限制, 如浮动 IP, 内存, CPU, 磁盘, 密钥, 安全规则, 云硬盘等 资源管理帮助 [root@station140 ~(keystone_admin)]# nova help | grep quota quota-class-show List the quotas for a quota class.
1323 0
|
10月前
|
存储 程序员 编译器
【Effective C++详细总结】第三章 资源管理
【Effective C++详细总结】第三章 资源管理
231 0

热门文章

最新文章