高性能计算平台 集群扩缩容策略说明

THPC 的弹性扩缩功能支持根据你的业务负载动态伸缩集群节点,帮助你节省集群成本。可以以根据需要在创建集群接口中的 AutoScalingType 配置 THPC_AS 模式进行扩缩容,支持自动匹配作业需要的实例资源,且弹性伸缩的实例与创建集群时配置的TAG一致。

相关产品
高性能计算平台 产品页,含版本规格、价格与购买入口。

一、背景说明

注意:说明:

注意:创建弹性扩缩容集群请参见自动伸缩最佳实践,目前仅支持 Slurm 集群开启 THPC_AS 模式。

二、THPC_AS 扩缩容策略

需把 AutoScalingType 设置为 THPC_AS 后,使用 SetAutoScalingConfiguration 接口配置扩缩容策略,以下是多个业务场景扩缩容效果的说明。

三、扩容匹配原则

THPC 主要通过实例的 CPU、内存规格与提交作业的资源申请规模进行匹配,优先匹配到运行作业后剩余资源最少的实例。THPC 会优先保证 CPU 资源剩余最少,如果实例运行作业后剩余 CPU 资源相同,会再匹配内存资源。

场景示例

场景 a: 作业所需4核4GB内存资源,扩容配置如下:

实例类型 vCPU 内存(GB)
A 4 16
B 8 8

THPC 会匹配到实例类型 A,因为 CPU 的优先级高,优先匹配 CPU 资源。

场景b:作业所需4核4GB资源,扩容配置如下:

实例类型 vCPU 内存(GB)
A 4 16
B 4 8

THPC 会匹配到实例类型 B,因为在 CPU 相同的情况下,会匹配内存资源,B 实例运行上作业之后,剩余资源较少。且实例扩容的数量取决于此作业运行起来需要的节点数量。

四、多机型、多可用区扩容

实例类型在每个可用区支持情况不同,你可能会面对所选机型在当前可用区售罄或相关配置问题,多可用区、多机型配置可帮助你有效的解决此类问题。

多机型配置功能能够有效降低售罄、实例调用失败带来的自动扩容失败风险。

场景示例

在 THPC_AS 策略中,可以对 CPU 核数和内存大小相同的机型进行多配置,以下为 SetAutoScalingConfiguration 接口中,队列名为 compute 所设置的ExpansionNodeConfig 机型列表、机型的资源信息、可用区以及对应的数组下标。

数组下标 机型 可用区 vCPU 内存(GB)
1 SA2.2XLARGE16 广州四区 8 16
2 SA2.2XLARGE16 广州五区 8 16
3 SA2.2XLARGE16 广州六区 8 16
4 SA3.2XLARGE16 广州五区 8 16
5 SA3.2XLARGE16 广州六区 8 16

假设客户投递一个作业,需要6核 CPU 和12GB内存,由于队列中最优匹配是需要8核、16GB内存的资源,那么弹性伸缩配置中,所有8核、16GB内存的资源都符合匹配,THPC 会根据配置的列表下标由低往高,依次尝试创建实例进行扩容。

五、比例扩容

由于扩容流程中,不会考虑扩容后实例的剩余资源,出于成本考虑,在扩容场景下,可以通过比例扩容的方式来逐步扩容,尽可能减少资源的浪费。

队列配置中,涉及 SetAutoScalingConfiguration 接口的队列配置中的两个参数:

参数名称 参数说明
ScaleOutRatio 扩容比例设置。取值范围1~100。
ScaleOutNodeThreshold 比例扩容阈值。

当计算出的任务需要扩容的数量大于 ScaleOutNodeThreshold 时,实际扩容数量为 (需要扩容数量 * ScaleOutRatio) / 100 向上取整。

当计算出的任务需要扩容的数量小于 ScaleOutNodeThreshold 时,实际扩容数量为需要扩容数量 (即 ScaleOutRatio=100)。

ScaleOutNodeThreshold 阈值有利于比例扩容在小数量扩容场景下,快速收敛。

场景示例

假设此时总共需要扩容100个节点加入集群,以下 A、B 配置的扩容比例设置为50,但是 ScaleOutNodeThreshold 阈值配置不同。

配置 ScaleOutRatio ScaleOutNodeThreshold
A 50 0
B 50 20

对于配置 A,100个节点总共需要自动扩容7轮,每轮节点扩容个数以及对应轮次如下左,每轮节点扩容总数以及对应轮次如下右:

对于配置 B,100个节点总共需要自动扩容4轮,当扩容至第4轮时,需要扩容的节点数量为12小于 ScaleOutNodeThreshold 参数值20,则按照需要扩容的节点数进行扩容。每轮节点扩容个数以及对应轮次如下左,每轮节点扩容总数以及对应轮次如下右:

二者每轮节点扩容总数以及对应轮次对比图如下,其中红色曲线为配置A,蓝色曲线为配置 B。可以看出,通过 ScaleOutNodeThreshold 参数能够加快在扩容实例数量较小的场景下收敛速度。

如果不需要比例扩容,可以将 ScaleOutRatio 参数默认设置为 100;如果对于扩容速度不敏感,可以将 ScaleOutNodeThreshold 设置为0。

六、THPC_AS 缩容策略说明

当节点连续空闲时间达到指定时间 ShrinkIdleTime,节点缩容。

赞 (0)
上一篇 4天前
下一篇 4天前