ALTER RESOURCE POOL

通过设置一个或多个参数来修改现有资源池。

语法

ALTER RESOURCE POOL pool‑name [ FOR subcluster-spec ] [ parameter‑name setting ]...

参数

pool‑name
资源池的名称。内置池名称不能用于用户定义的池。
FOR subcluster‑spec
仅限 Eon 模式,指定将此资源池与某个子群集关联,其中 subcluster-spec 为以下之一:
  • SUBCLUSTER subcluster-name:更改现有子群集的资源池。您不能连接到此子群集,否则 Vertica 会返回错误。
  • CURRENT SUBCLUSTER:更改您连接到的子群集的资源池。
parameter‑name
要设置的参数,如下所示。
设置

要在 parameter‑name 上设置的值。要将此参数重置为其默认值,请指定 DEFAULT

CASCADE TO

指定一个辅助资源池,用于执行其 [RUNTIMECAP](#RUNTIMECAP) 设置超出分配资源池的查询:

CASCADE TO secondary‑pool
CPUAFFINITYMODE

指定资源池是单独使用还是共用 [CPUAFFINITYSET](#CPUAFFINITYSET) 中指定的 CPU。

CPUAFFINITYMODE { SHARED | EXCLUSIVE | ANY }
  • SHARED:在此池中运行的查询与其他 Vertica 资源池共享其 CPUAFFINITYSET CPU。

  • EXCLUSIVE:仅将 CPUAFFINITYSET CPU 专用于此资源池,不用于其他 Vertica 资源池。如果将 CPUAFFINITYSET 设置为百分比,那么仅为此资源池分配可用于 Vertica 的 CPU 资源百分比。

  • ANY (默认值):此资源池中的查询可以在任何 CPU 上运行,如果 CPUAFFINITYSET 指定 CPU 资源,则此查询无效。

CPUAFFINITYSET

指定此资源池可用的 CPU。所有群集节点必须具有相同的 CPU 数量。分配给该集合的 CPU 资源对常规资源池不可用。

CPUAFFINITYSET {
  'cpu‑index[,...]'
| 'cpu‑indexi-cpu‑indexn'
| 'integer%'
| NONE
}
  • cpu‑index[,...]:将以一个或多个逗号分隔的 CPU 专用于此池。

  • cpu‑indexi-cpu‑indexn:将一系列连续的 CPU 索引专用于此池

  • integer%:此池可用的所有可用 CPU 的百分比。Vertica 将此百分比向下舍入以包括整个 CPU 单元。

  • NONE (默认值):没有关联集分配给该资源池。与该池关联的查询可在任何 CPU 上执行。

EXECUTIONPARALLELISM

限制用于处理此资源池中发出的任何单一查询的线程数量。

EXECUTIONPARALLELISM { limit | AUTO }
  • limit:介于 1 与内核数之间的整数值。将此参数设置为减小的值时,可以增大池中发出的简短查询的吞吐量,特别是在并发执行多个查询的情况下。

  • AUTO or0(默认值):Vertica 根据系统中的内核数、可用内存和数据量计算设置。除非内存有限,或者数据量非常小,否则 Vertica 会将此参数设置为节点中的核心数。

MAXCONCURRENCY

设置群集中资源池可用的最大并发执行槽数:

MAXCONCURRENCY { integer | NONE }

NONE (默认)指定不限数量的并发执行槽。

MAXMEMORYSIZE

通过从 GENERAL 池中借用内存,资源池可以增加的每个节点的最大大小:

MAXMEMORYSIZE {
  'integer%'
| 'integer{K|M|G|T}'
| NONE
}
  • integer%:占总内存的百分比

  • integer{K|M|G|T}:以千字节、兆字节、千兆字节或太字节为单位的内存量

  • NONE (默认值):无限制,池可以从 GENERAL 池中借用任意数量的可用内存。

MAXQUERYMEMORYSIZE

此池可以在运行时分配以处理查询的最大内存量。如果查询需要的内存超过此设置,Vertica 将停止执行并返回错误。

设置此参数如下:

MAXQUERYMEMORYSIZE {
  'integer%'
| 'integer{K|M|G|T}'
| NONE
}
  • integer%:百分比 此池的 MAXMEMORYSIZE

  • integer{K|M|G|T}:以千字节、兆字节、千兆字节或太字节为单位的内存量,最大为 MAXMEMORYSIZE

  • NONE (默认值):无限制;池可以从 GENERAL 池中借用任意数量的可用内存,其限制由以下设置: MAXMEMORYSIZE

MEMORYSIZE

每个节点分配给此池的 Vertica 资源管理器可用的总内存量:

MEMORYSIZE {
  'integer%'
| 'integer{K|M|G|T}'
}
  • integer%:占总内存的百分比

  • integer{K|M|G|T}:以千字节、兆字节、千兆字节或太字节为单位的内存量

默认值: 0%。没有分配任何内存,资源池从 GENERAL 池中借用内存。

PLANNEDCONCURRENCY

指定资源池中并发执行的查询首选数量。此设置适用于整个群集:

PLANNEDCONCURRENCY { num‑queries | AUTO }
  • num‑queries:整数值 ≥ 1,指定并发执行查询的首选数量。在可能的情况下,查询资源预算被限制为允许此级别的并发执行。

  • AUTO (默认值):值将在查询运行时自动计算。Vertica 将此参数设置为这两个计算中的较低值,但绝不会小于 4:

    • 逻辑核心数

    • 内存除以 2GB

对于不同节点上逻辑核数不同的群集,AUTO 可以在每个节点上应用不同的方法。分布式查询的运行方式类似于最低的有效计划并发性能。单节点查询以发起方的计划并发性能运行。

PRIORITY

指定此池中的查询在争用 GENERAL 池中资源时的优先级:

PRIORITY { integer | HOLD }
  • integer:一个负整数或正整数值。数字越大,表示优先级越高:

    • 用户定义的池: ‑100100

    • 内置池 SYSQUERYRECOVERY TM‑110110

  • HOLD:将优先级设置为 -999。此池中的查询将排队,直到达到 [QUEUETIMEOUT](#QUEUETIMEOUT) 为止。

默认值: 0

QUEUETIMEOUT

指定请求在被拒绝之前可以等待池资源多长时间:

QUEUETIMEOUT { integer | NONE }
  • integer:最长等待时间(以秒为单位)

  • NONE:没有最长等待时间,请求可以无限排队。

默认值: 300 秒

RUNTIMECAP

通过设置池中的查询可以执行的最大时间,可以防止查询失控。如果查询超出此设置,它会尝试级联到辅助池。

RUNTIMECAP { 'interval' | NONE }
  • interval:1 分钟或 100 秒的间隔;不应超过 1 年。

  • NONE (默认值):在此池中运行的查询没有时间限制。

    要以天为单位指定一个值,请提供整数值。要提供小于一天的值,请以 hours:minutes:seconds 格式提供间隔。例如,值为 1:30:00 时,则等于 90 分钟。

    如果用户或会话也具有 RUNTIMECAP,则会应用较短的限制。

RUNTIMEPRIORITY

确定资源管理器应如何将运行时资源(CPU、I/O 带宽)的优先级分配给已在此资源池中运行的查询:

RUNTIMEPRIORITY { HIGH | MEDIUM | LOW }

默认值MEDIUM

RUNTIMEPRIORITYTHRESHOLD

以秒为单位指定一个时间限制,在资源管理器为其分配资源池 RUNTIMEPRIORITY 之前,必须完成一个查询。所有查询从 HIGH 优先级开始运行。如果查询的持续时间超过了此阈值,它将分配到资源池的 RUNTIMEPRIORITY

RUNTIMEPRIORITYTHRESHOLD seconds

默认值: 2

SINGLEINITIATOR

默认情况下,已设置为 false 以实现向后兼容性。切勿更改此设置。

特权

超级用户

示例

以下示例显示如何通过将优先级设置为 5 来更改资源池 ceo_pool

=> ALTER RESOURCE POOL ceo_pool PRIORITY 5;

以下示例显示如何为 ceo_pool 指定一个辅助资源池。

=> CREATE RESOURCE POOL second_pool;
=> ALTER RESOURCE POOL ceo_pool CASCADE TO second_pool;

以下 Eon 模式示例将 dashboard 辅助子群集的内置 TM 资源池的 MAXMEMORYSIZEMEMORYSIZE 减小到 0%。将这些设置更改为 0 会阻止子群集运行 Tuple Mover 合并操作。

=> ALTER RESOURCE POOL TM FOR SUBCLUSTER dashboard MEMORYSIZE '0%'
   MAXMEMORYSIZE '0%';

有关详细信息,请参阅调整 Tuple Mover 池设置

另请参阅