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

OushuDB使用资源队列来管理用户查询的资源,如CPU和内存。每个用户关联一个资源队列,可创建多层队列结构。默认队列为pg_root和pg_default,新用户通常分配到pg_default。通过CREATERESOURCEQUEUE创建自定义队列,如ceo_report,设置并发查询数、内存和CPU使用比例。CREATEROLE命令用于将用户kurt分配到ceo_report队列,确保其查询使用指定资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

OushuDB 使用资源队列(Resource Queues)来管理整个系统的资源。每一个 OushuDB 用户都和一个资源队列关联,该用户发出的所有查询 都会使用该关联的资源队列中的资源。我们可以创建多个资源队列,资源队列之间形成一种树状结构。例如下图:

图 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 中的资源。

通过下面的命令可以创建上图中的其他的资源队列:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值