伸缩规则触发执行原则

最近更新时间:2025-12-25 16:57:51

我的收藏

扩容规则执行时预设资源添加原则

每个集群最多可配置10种伸缩规格,扩容规则触发时将根据规格优先级进行扩容,当高优先级规格数量不足时,由次优先级资源规格混合高优先级规格进行扩容补充计算资源(按量计费和竞价实例执行顺序相同)。
当资源充足时:1>2>3>4>5
例如
预设5种规格且资源充足,当扩容规则触发需要扩容10台节点时,按照顺序规格1扩容10台节点,其余预设规格不选择。
当资源不足时:1+2>1+2+3>1+2+3+4>1+2+3+4+5
例如
预设规格1有8台节点,规格2有4台节点,规格3有3台节点,当扩容规则触发需要扩容13台节点时,按照顺序规格1扩容8台节点,规格2扩容4台,规格3扩容1台节点。
当资源规格无货时,假设规格2无货:1+3>1+3+4>1+3+4+5
例如
预设规格1有8台节点,规格2没货没有节点,规格3有3台节点,当扩容规则触发需要扩容10台节点时,按照顺序规格1扩容8台节点,规格2不选,规格3扩容2台节点。
预设规格1有8台节点,其余预设规格均无货,当扩容规则触发,需要扩容10台节点时,扩容规则将会触发,并扩容规格1扩容8台节点,扩容部分成功。
扩容方式:支持选择:节点、内存、核数三种方式;三种方式仅支持整数非0值输入。当方式选择核数和内存时,扩容保证最大算力进行扩容节点数量换算。
例如
按核数扩容,设置扩容10核,但规格按优先顺序扩容规格为8核时,规则触发将扩容2台8核节点
按内存扩容,设置扩容20G,但规格按优先顺序扩容规格为16G时,规则触发将扩容2台16G节点

开启尽力交付时弹性节点扩容原则

自动扩容在高峰下单时可能由于资源争抢导致实际扩容机器数量达不到弹性目标数量,当您开启尽力交付策略后,如果配置的伸缩规格资源充足,系统会自动重试申请资源,直到满足或接近目标数量。
注意:
重试次数上限为5次,达到次数上限后无论扩容数量是否达到目标数量,将不再重试。
预设资源规格优先级:1>2>3>4>5。假设预设规格1有8台节点,规格2有2台节点,规格3有6台节点,规格4有6台节点。
例如:
未开启尽力交付:当扩容规则触发需要扩容15台节点时,按照顺序规格1扩容8台节点,规格2扩容2台节点,规格3扩容5台节点。下单时由于资源争抢,实际发货:规格1扩容8台节点,规格2扩容0台节点,规格3扩容5台,共计扩容13台节点,扩容部分成功。
开启尽力交付:当扩容规则触发需要扩容15台节点时,按照顺序规格1扩容8台节点,规格2扩容2台节点,规格3扩容5台节点。下单时由于资源争抢,初次扩容实际发货:规格1扩容8台节点,规格2扩容0台节点,规格3扩容5台,共计扩容13台节点。此时触发补足重试,轮询规格1、2、3、4、5,最终补充发货:规格2扩容1台,规格3扩容1台。2次发货总计:规格1扩容8台节点,规格2扩容1台节点,规格3扩容6台,共计扩容15台节点,扩容成功。

缩容规则执行时弹性节点缩容原则

自动伸缩功能扩容出的弹性节点,当缩容规则触发时:按时间缩容,将优先缩容空闲节点,根据“先扩后缩,后扩先缩”原则执行,不足缩容数量时,再选择缩容运行 container 的节点;按负载缩容,优先缩容部署了负载指标所属服务的节点,且优先缩容空闲节点,根据“先扩后缩,后扩先缩”原则执行,不足缩容数量时,再选择缩容运行 container 的节点。非弹性节点将不受缩容规则触发而触发缩容动作,非弹性节点仅支持手动缩容。
注意
定时销毁节点将不受“先扩后缩,后扩先缩”和集群“最小节点数”原则约束;时间到达即可执行缩容,且默认优雅缩容30分钟范围。
空闲节点的判断依据为5分钟内无正在运行的 container。
按负载缩容,假设节点创建时间从早到晚A>B>C>D>E。
例如:
设置 YARN 负载指标缩容,缩容5台节点,C、D、E部署了 YARN 组件,且D、E正在运行 container,当缩容规则触发时,缩容顺序为:C>E>D>B>A。
设置 Trino 负载指标缩容,缩容5台节点,C、D、E部署了 Trino 组件,且D、B正在运行 container,当缩容规则触发时,缩容顺序为:E>C>D>A>B。
按时间缩容,假设节点创建时间从早到晚A>B>C>D>E。
例如:
按节点缩容,设置缩容5台节点,D、E正在运行 container,当缩容规则触发时,缩容顺序为:C>B>A>E>D。
缩容方式:支持选择:节点、内存、核数三种方式;三种方式仅支持整数非0值输入当方式选择核数和内存时,缩容保证业务正常按最小台数进行缩容节点数量换算,节点无任务运行时按时间倒序缩容。
例如
按核数缩容,设置缩容20核,缩容规则触发时,按时间倒序集群存在弹性节点分别为3台8核16G节点和2台4核8G节点,将成功缩容2台8核16G节点。
按内存缩容,设置缩容30G,缩容规则触发时,按时间倒序集群存在弹性节点分别为3台8核16G节点和2台4核8G节点,将成功缩容1台8核16G节点。
按核数缩容,设置缩容20核,缩容规则触发时,按时间倒序集群存在弹性节点分别为3台32核64G节点和2台64核128G节点,无符合条件的弹性节点,缩容规则将无法触发

伸缩规则触发顺序执行原则

支持时间伸缩和负载伸缩混合弹性规则设置,规则触发遵循“先触发先执行,同时触发根据规则优先顺序执行”;规则状态用于标记规则是否开启,默认为开启状态,当不需要规则运行但仍想保留规则配置时可将规则状态设置为关闭。
仅按负载进行伸缩设置
1.1 遵循“先触发先执行,同时触发根据规则优先顺序执行”,如:1>2>3>4>5
1.2 单条负载伸缩规则支持设置多指标,可选择所有指标都符合条件时触发规则或任意指标符合条件时触发规则。
1.3 支持指定时间段内监控集群负载变化,设置负载伸缩生效。
仅按时间进行伸缩设置
1.1 遵循“先触发先执行,同时触发根据规则优先顺序执行”,如:1>2>3>4>5
1.2 重复执行规则,若规则到期后,规则状态将失效并处于关闭状态;到期前将有告警通知,详情请参见 告警配置
按负载和时间混合进行伸缩设置 遵循“先触发先执行,同时触发根据规则优先顺序执行”,如:1>2>3>4>5

队列负载指标对应关系

负载类型
类别
维度
EMR 自动伸缩指标
指标含义
YARN
AvailableVCores
root
AvailableVCores#root
Root 队列可用虚拟核数的数量
root.default
AvailableVCores#root.default
root.default 队列可用虚拟核数的数量
自定义子队列
如:AvailableVCores#root.test
root.test 队列可用虚拟核数的数量
PendingVCores
root
PendingVCores#root
root 队列等待可用的虚拟核数
root.default
PendingVCores#root.default
root.default 队列等待可用的虚拟核数
自定义子队列
如:PendingVCores#root.test
root.test 队列等待可用的虚拟核数
AvailableMB
root
AvailableMB#root
root 队列可用内存数量(MB)
root.default
AvailableMB#root.default
root.default 队列可用内存数量(MB)
自定义子队列
如:AvailableMB#root.test
root.test 队列可用内存数量(MB)
PendingMB
root
PendingMB#root
root 队列等待可用的内存数量(MB)
root.default
PendingMB#root.default
root.default 队列等待可用的内存数量(MB)
自定义子队列
如:PendingMB#root.test
root.test 队列等待可用的内存数量(MB)
AvailableMemPercentage
集群
AvailableMemPercentage
剩余内存的百分比
ContainerPendingRatio
集群
ContainerPendingRatio
待分配的容器数与已分配的容器数的比率
AppsRunning
root
AppsRunning#root
root 队列运行中的任务数
root.default
AppsRunning#root.default
root.default 队列运行中的任务数
自定义子队列
如:AppsRunning#root.test
root.test 队列运行中的任务数
AppsPending
root
AppsPending#root
root 队列挂起的任务数
root.default
AppsPending#root.default
root.default 队列挂起的任务数
自定义子队列
如:AppsPending#root.test
root.test 队列挂起的任务数
PendingContainers
root
PendingContainers#root
root 队列待分配的容器数
root.default
PendingContainers#root.default
root.default 队列待分配的容器数
自定义子队列
如:PendingContainers#root.test
root.test 队列待分配的容器数
AllocatedMB
root
AllocatedMB#root
root 队列已分配的内存量
root.default
AllocatedMB#root.default
root.default 队列已分配的内存量
自定义子队列
如:AllocatedMB#root.test
root.test 队列已分配的内存量
AllocatedVCores
root
AllocatedVCores#root
root 队列已分配的虚拟核数
root.default
AllocatedVCores#root.default
root.default 队列已分配的虚拟核数
自定义子队列
如:AllocatedVCores#root.test
root.test 队列已分配的虚拟核数
ReservedVCores
root
ReservedVCores#root
root 队列预留的虚拟核数
root.default
ReservedVCores#root.default
root.default 队列预留的虚拟核数
自定义子队列
如:ReservedVCores#root.test
root.test 队列预留的虚拟核数
AllocatedContainers
root
AllocatedContainers#root
root 队列已分配的容器数
root.default
AllocatedContainers#root.default
root.default 队列已分配的容器数
自定义子队列
如:AllocatedContainers#root.test
root.test 队列已分配的容器数
ReservedMB
root
ReservedMB#root
root 队列预留的内存量
root.default
ReservedMB#root.default
root.default 队列预留的内存量
自定义子队列
如:ReservedMB#root.test
root.test 队列预留的内存量
AppsKilled
root
AppsKilled#root
root 队列终止的任务数
root.default
AppsKilled#root.default
root.default 队列终止的任务数
自定义子队列
如:AppsKilled#root.test
root.test 队列终止的任务数
AppsFailed
root
AppsFailed#root
root 队列失败的任务数
root.default
AppsFailed#root.default
root.default 队列失败的任务数
自定义子队列
如:AppsFailed#root.test
root.test 队列失败的任务数
AppsCompleted
root
AppsCompleted#root
root 队列完成的任务数
root.default
AppsCompleted#root.default
root.default 队列完成的任务数
自定义子队列
如:AppsCompleted#root.test
root.test 队列完成的任务数
AppsSubmitted
root
AppsSubmitted#root
root 队列提交的任务数
root.default
AppsSubmitted#root.default
root.default 队列提交的任务数
自定义子队列
如:AppsSubmitted#root.test
root.test 队列提交的任务数
AvailableVCoresPercentage
集群
AvailableVCoresPercentage
集群内可用虚拟核数百分比
MemPendingRatio
root
MemPendingRatio#root
root 队列等待可用的内存百分比
root.default
MemPendingRatio#root.default
root.default 队列等待可用的内存百分比
自定义子队列
如:MemPendingRatio#root.test
root.test 队列等待可用的内存百分比
usageRatioVCores
root
usageRatioVCores#root
root 队列 CPU 资源的使用率
root.default
usageRatioVCores#root.default
root.default 队列 CPU 资源的使用率
自定义子队列
如:usageRatioVCores#root.test
root.test 队列 CPU 资源的使用率
usageRatioMem
root
usageRatioMem#root
root 队列内存资源的使用率
root.default
usageRatioMem#root.default
root.default 队列内存资源的使用率
自定义子队列
如:usageRatioMem#root.test
root.test 队列内存资源的使用率
Trino
FreeDistributed
集群
FreeDistributed
集群可用 Distributed 内存
QueuedQueries
集群
QueuedQueries
队列中等待执行的查询总数
StarRocks
CNUsedVCores
集群
CNUsedVCores
集群中所有 CN 节点已使用虚拟核数的数量
计算组
指定计算组中所有 CN 节点已使用虚拟核数的数量
CNUsedMB
集群
CNUsedMB
集群中所有 CN 节点已使用内存数量(MB)
计算组
指定计算组中所有 CN 节点已使用内存数量(MB)
CNUsedVCoresPercentage
集群
CNUsedVCoresPercentage
集群中所有 CN 节点 CPU 使用率
计算组
指定计算组中所有 CN 节点 CPU 使用率
CNUsedMBPercentage
集群
CNUsedMBPercentage
集群中所有 CN 节点内存使用率
计算组
指定计算组中所有 CN 节点内存使用率