ALTER RESOURCE POOL
通过设置一个或多个参数来修改现有资源池。
语法
ALTER RESOURCE POOL pool‑name [ FOR subcluster-spec ] [ parameter‑name setting ]...
参数
- pool‑name
- 资源池的名称。内置池名称不能用于用户定义的池。
注意
如果使用大写字母指定资源池名称,Vertica 会将它们转换为小写字母。 -
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 资源池共享其CPUAFFINITYSETCPU。 -
EXCLUSIVE:仅将CPUAFFINITYSETCPU 专用于此资源池,不用于其他 Vertica 资源池。如果将CPUAFFINITYSET设置为百分比,那么仅为此资源池分配可用于 Vertica 的 CPU 资源百分比。 -
ANY(默认值):此资源池中的查询可以在任何 CPU 上运行,如果CPUAFFINITYSET指定 CPU 资源,则此查询无效。
重要
CPUAFFINITYMODECPUAFFINITYSET必须在同一语句中一起设置。-
-
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 上执行。
重要
CPUAFFINITYSETCPUAFFINITYMODE必须在同一语句中一起设置。-
-
EXECUTIONPARALLELISM 限制用于处理此资源池中发出的任何单一查询的线程数量。
EXECUTIONPARALLELISM { limit | AUTO }-
limit:介于 1 与内核数之间的整数值。将此参数设置为减小的值时,可以增大池中发出的简短查询的吞吐量,特别是在并发执行多个查询的情况下。
-
AUTOor0(默认值):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{K|M|G|T}:以千字节、兆字节、千兆字节或太字节为单位的内存量,最大为MAXMEMORYSIZE。 -
NONE(默认值):无限制;池可以从 GENERAL 池中借用任意数量的可用内存,其限制由以下设置:MAXMEMORYSIZE。
重要
对MAXQUERYMEMORYSIZE的更改会追溯应用于当前正在执行的查询。如果减少此设置值,对于按照先前内存大小计划的查询,如果其尝试分配的内存大于新设置允许的值,则很可能会失败。-
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:一个负整数或正整数值。数字越大,表示优先级越高:
-
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默认值:
2SINGLEINITIATOR默认情况下,已设置为 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 资源池的 MAXMEMORYSIZE 和 MEMORYSIZE 减小到 0%。将这些设置更改为 0 会阻止子群集运行
Tuple Mover
合并操作。
=> ALTER RESOURCE POOL TM FOR SUBCLUSTER dashboard MEMORYSIZE '0%'
MAXMEMORYSIZE '0%';
有关详细信息,请参阅调整 Tuple Mover 池设置。