更新时间:2024-11-12 GMT+08:00
分享

RESOURCE_MANAGER

接口介绍

资源计划高级功能包RESOURCE_MANAGER用于在内核多租模式下分配、管理PDB的资源。

支持的所有接口请参见表 表1 RESOURCE_MANAGER

表1 RESOURCE_MANAGER

接口名称

描述

RESOURCE_MANAGER.CREATE_PENDING_AREA

创建资源计划待决区。

RESOURCE_MANAGER.VALIDATE_PENDING_AREA

校验资源计划待决区待提交的计划正确性。

RESOURCE_MANAGER.CLEAR_PENDING_AREA

清空待决区,清空后待决区的所有修改均作废。

RESOURCE_MANAGER.SUBMIT_PENDING_AREA

提交待决区,提交后待决区的资源计划生效。

RESOURCE_MANAGER.CREATE_RESOURCE_PLAN

创建资源计划。

RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN

更新资源计划。

RESOURCE_MANAGER.DELETE_RESOURCE_PLAN

删除资源计划。

RESOURCE_MANAGER.CREATE_RESOURCE_PLAN_DIRECTIVE

创建资源计划指令。

RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN_DIRECTIVE

更新资源计划指令。

RESOURCE_MANAGER.DELETE_RESOURCE_PLAN_DIRECTIVE

删除资源计划指令。

高级包仅允许在主机的CDB内执行,PDB内部或者备机执行会报错。

  • RESOURCE_MANAGER.CREATE_PENDING_AREA

    创建资源计划待决区,进入可编辑资源计划的状态。待决区是资源计划表gs_resource_plans和资源计划指令表gs_resource_plan_directives中待提交的改动数据。其中status字段显示为pending的数据对实际资源分配没有影响,在使用submit_pending_area接口提交待决区后,改动才会应用到实际资源分配中,同时status字段的值由pending变为active。整个实例仅有一份待决区数据,且不允许多个会话同时编辑。

    RESOURCE_MANAGER.CREATE_PENDING_AREA的函数原型:

    RESOURCE_MANAGER.CREATE_PENDING_AREA ()
    returns void

    如果其他会话已经创建并持有待决区,此时创建待决区将报错失败。

  • RESOURCE_MANAGER.VALIDATE_PENDING_AREA

    验证待决区所有资源计划的正确性,验证点包括以下几点:

    • 任一资源计划分配的min_cpu之和不能超过环境最大CPU核数。
    • max_dynamic_memory之和不能超过CDB的max_dynamic_memory的90%(CDB的内存份额可通过gs_total_memory_detail视图获取)。
    • max_shared_memory之和不能超过CDB的max_shared_memory的90%。
    • max_connections之和不能超过CDB的max_connections的90%,同时不能超过CDB的max_connections减去CDB已经占用的连接数。
    • 正在使用的资源计划为所有open状态的PDB均分配了资源。

    如果分配内存/连接数到PDB后将导致CDB的可用内存或连接数资源不足,校验将报错失败。

    RESOURCE_MANAGER.VALIDATE_PENDING_AREA的函数原型:

    RESOURCE_MANAGER.VALIDATE_PENDING_AREA()
    returns void
  • RESOURCE_MANAGER.CLEAR_PENDING_AREA

    清空待决区:把创建待决区时在系统表gs_resource_plans和gs_resource_plan_directives表的状态为pending的待决区数据全部删除,并释放待决区。待决区的所有修改均作废。

    RESOURCE_MANAGER.CLEAR_PENDING_AREA的函数原型:

    RESOURCE_MANAGER.CLEAR_PENDING_AREA()
    returns void
  • RESOURCE_MANAGER.SUBMIT_PENDING_AREA

    提交待决区:生效PendingArea中的待决区计划指令,并释放待决区。如果待决区涉及改动当前使用的计划,提交待决区会使得资源按照新的改动进行分配。提交前会对PendingArea做一次资源配额的校验,具体校验规则与RESOURCE_MANAGER.VALIDATE_PENDING_AREA相同。

    RESOURCE_MANAGER.SUBMIT_PENDING_AREA的函数原型:

    RESOURCE_MANAGER.SUBMIT_PENDING_AREA()
    returns void
  • RESOURCE_MANAGER.CREATE_RESOURCE_PLAN

    创建资源计划:在gs_resource_plans系统表创建一条状态为pending的待决区资源计划。

    RESOURCE_MANAGER.CREATE_RESOURCE_PLAN的函数原型:
    RESOURCE_MANAGER.CREATE_RESOURCE_PLAN(
        name                   name,
        comment                text DEFAULT NULL::text
    )
    表2 RESOURCE_MANAGER.CREATE_RESOURCE_PLAN接口参数说明

    参数

    参数类型

    输入/输出

    参数值范围

    是否必传/默认值

    描述

    name

    name

    输入

    /

    计划名称。

    comment

    text

    输入

    /

    否/空

    对计划的描述。

  • RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN

    更新资源计划:更新PendingArea中指定资源计划的说明。

    RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN的函数原型:

    RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN(
        name                   name,
        comment                text DEFAULT NULL::text
    )
    表3 RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN接口参数说明

    参数

    参数类型

    输入/输出

    参数值范围

    是否必传/默认值

    描述

    name

    name

    输入

    /

    计划名称。

    comment

    text

    输入

    /

    /空

    对计划的描述。

  • RESOURCE_MANAGER.DELETE_RESOURCE_PLAN

    删除资源计划:删除PendingArea中指定的资源计划,并删除该计划下所有的资源指令。

    RESOURCE_MANAGER.DELETE_RESOURCE_PLAN的函数原型:
    RESOURCE_MANAGER.DELETE_RESOURCE_PLAN(
        name                   name
    )
    表4 RESOURCE_MANAGER.DELETE_RESOURCE_PLAN接口参数说明

    参数

    参数类型

    输入/输出

    参数值范围

    是否必传/默认值

    描述

    name

    name

    输入

    /

    计划名称。

  • RESOURCE_MANAGER.CREATE_RESOURCE_PLAN_DIRECTIVE

    创建计划指令:在PendingArea中,为指定计划创建一条属于指定PDB的资源配额指令,为该PDB分配资源。

    RESOURCE_MANAGER.CREATE_RESOURCE_PLAN_DIRECTIVE的函数原型:

    RESOURCE_MANAGER.CREATE_RESOURCE_PLAN_DIRECTIVE (
        plan_name                   name DEFAULT NULL::name,
        pdb_name                    name,
        min_cpu                     integer DEFAULT (-1),
        max_dynamic_memory          name DEFAULT NULL::name,
        max_shared_memory           name DEFAULT NULL::name,
        max_connections             integer DEFAULT (-1),
        io_limits                   integer DEFAULT 0,
        io_priority                 name DEFAULT NULL::name,
        comment                     text DEFAULT NULL::text
    )
    表5 RESOURCE_MANAGER.CREATE_RESOURCE_PLAN_DIRECTIVE接口参数说明

    参数

    参数类型

    输入/输出

    参数值范围

    是否必传/默认值

    描述

    plan_name

    name

    输入

    /

    否/ default_resource_plan

    计划名称。本字段大小写不敏感。

    pdb_name

    name

    输入

    /

    pdb名称。

    min_cpu

    integer

    输入

    >=1

    保证PDB可用的cpu个数,不允许超过CDB的最大核数。

    max_dynamic_memory

    name

    输入

    >=1G,(-1)

    否/-1不控制

    PDB允许使用的动态内存上限,

    不允许超过CDB的max_dynamic_memory(CDB下pv_total_memory_detail系统函数可查)的90%。

    max_shared_memory

    name

    输入

    >=256MB,(-1)

    否/-1不控制

    PDB允许使用的共享缓存上限,

    不允许超过CDB的max_shared_memory(CDB下pv_total_memory_detail系统函数可查)的90%。

    max_connection

    integer

    输入

    >= 10,(-1)

    否/ -1 不控制

    PDB允许最大的连接数,

    不允许超过CDB的max_connections的90%。

    io_limits

    integer

    输入

    >=0

    否/0 不控制

    每秒触发I/O的次数上限。行存单位是io_control_unit(默认6000)次/s。0表示不控制。

    io_priority

    name

    输入

    None/

    Low/

    Medium/

    High

    否/None 不控制

    当磁盘I/O利用率达到50%时,该字段生效。高中低过去3s内平均I/O速度上限。

    • High:生效时,为过去3s内平均I/O速度的50%,最低不得低于50。
    • Medium:生效时,为过去3s内平均I/O速度的20%,最低不得低于20。
    • Low:生效时,为过去3s内平均I/O速度的10%,最低不得低于10。

    comment

    text

    输入

    /

    否/空

    对计划指令的描述。

  • RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN_DIRECTIVE

    更新计划指令:在PendingArea中,更新指定计划指定PDB的资源配额。即更新gs_resource_plan_directives系统表中一条状态为Pending的记录。只修改传入的参数,未传入的参数值不被修改。

    RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN_DIRECTIVE的函数原型:
    create or replace function RESOURCE_MANAGER.update_resource_plan_directive (
        plan_name                   name DEFAULT NULL::name,
        pdb_name                    name,
        min_cpu                     integer DEFAULT NULL::integer,
        max_dynamic_memory          name DEFAULT NULL::name,
        max_shared_memory           name DEFAULT NULL::name,
        max_connections             integer DEFAULT (-1),
        io_limits                   integer DEFAULT NULL::integer,
        io_priority                 name DEFAULT NULL::name,
        comment                     text DEFAULT NULL::text
    )
    表6 RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN_DIRECTIVE接口参数说明

    参数

    参数

    类型

    输入/

    输出

    参数值

    范围

    是否必传/

    默认值

    描述

    plan_name

    name

    输入

    /

    否/ default_resource_plan

    计划名称。本字段大小写不敏感。

    pdb_name

    name

    输入

    /

    pdb名称。

    min_cpu

    integer

    输入

    >=1

    否/NULL不做变更

    保证PDB可用的cpu个数,不允许超过CDB的最大核数。

    max_dynamic_memory

    name

    输入

    >=1G

    否/NULL不做变更

    PDB允许使用的动态内存上限,

    不允许超过CDB的max_dynamic_memory(CDB下pv_total_memory_detail系统函数可查)的90%。

    max_shared_memory

    name

    输入

    >=256MB

    否/NULL不做变更

    PDB允许使用的共享缓存上限,不允许超过CDB的max_shared_memory(CDB下pv_total_memory_detail系统函数可查)的90%。

    max_connection

    integer

    输入

    >= 10

    否/-1不做变更

    PDB允许最大的连接数,不允许超过CDB的max_connections的90%。

    io_limits

    integer

    输入

    >=0

    否/NULL不做变更

    每秒触发I/O的次数上限。行存单位是io_control_unit(默认6000)次/s。

    io_priority

    name

    输入

    None/

    Low/

    Medium/

    High

    否/NULL不做变更

    当磁盘I/O利用率达到50%时,该字段生效。高中低过去3s内平均I/O速度上限。

    • High:生效时,为过去3s内平均I/O速度的50%,最低不得低于50。
    • Medium:生效时,为过去3s内平均I/O速度的20%,最低不得低于20。
    • Low:生效时,为过去3s内平均I/O速度的10%,最低不得低于10。

    comment

    text

    输入

    /

    否/NULL不做变更

    对计划指令的描述。

  • RESOURCE_MANAGER.DELETE_RESOURCE_PLAN_DIRECTIVE

    删除计划指令: 在PendingArea中,为指定计划删除一条属于指定PDB的资源配额的指令。

    RESOURCE_MANAGER.DELETE_RESOURCE_PLAN_DIRECTIVE的函数原型:

    RESOURCE_MANAGER.DELETE_RESOURCE_PLAN_DIRECTIVE (
        plan_name                   name DEFAULT NULL::name,
        pdb_name                    name
    )
    returns void
    表7 RESOURCE_MANAGER.DELETE_RESOURCE_PLAN_DIRECTIVE接口参数说明

    参数

    参数类型

    输入/输出

    是否必传/默认值

    描述

    plan_name

    name

    输入

    否/ default_resource_plan

    计划名称。

    pdb_name

    name

    输入

    pdb名称。

    创建并提交多个资源计划后,可以通过ALTER SYSTEM SET语法变更当前生效的资源计划。

相关文档