配置自动扩缩容#
本指南解释了如何使用 Ray 集群启动器配置 Ray 自动扩缩容器。Ray 自动扩缩容器是一个 Ray 集群进程,它根据资源需求自动上下扩缩集群。自动扩缩容器通过根据任务、actor 或放置组所需的资源来调整集群中的节点数量来实现这一点。
请注意,自动扩缩容器仅考虑逻辑资源请求进行扩缩容(即,在 @ray.remote
中指定并在 ray status
中显示的资源请求),而不考虑物理机器利用率。如果用户尝试启动 actor、任务或放置组但资源不足,请求将被排队。自动扩缩容器会添加节点以满足此队列中的资源需求。自动扩缩容器也会在节点闲置一段时间后将其移除。一个节点被认为是闲置的,如果它没有活动的任务、actor 或引用的对象(无论是在内存中还是溢出到磁盘)。
提示
何时使用自动扩缩容?
自动扩缩容可以降低工作负载成本,但会增加节点启动开销,并且配置可能很复杂。如果你刚开始使用 Ray,我们建议从非自动扩缩容集群开始。
集群配置参数#
以下选项在你的集群配置文件中可用。建议你在启动集群之前设置这些选项,但你也可以通过更新集群配置在运行时修改它们。
max_workers[default_value=2, min_value=0]
: 要启动的最大集群 worker 节点数。请注意,这不包括 head 节点。
min_workers[default_value=0, min_value=0]
: 要启动的最小集群 worker 节点数,无论利用率如何。请注意,这不包括 head 节点。此数量必须小于 max_workers
。
注意
如果在运行时修改 max_workers
,自动扩缩容器将立即移除节点,直到满足此约束。这可能会中断正在运行的工作负载。
如果你使用不止一种节点类型,你也可以为每种单独类型设置最小和最大 worker 数
available_node_types.<node_type_name>.max_workers[default_value=集群 max_workers, min_value=0]
: 要启动的给定类型的 worker 节点的最大数量。此数量必须小于或等于集群的 max_workers
。
available_node_types.<node_type_name>.min_workers[default_value=0, min_value=0]
: 要启动的给定类型的 worker 节点的最小数量,无论利用率如何。所有节点类型的 min_workers
总和必须小于或等于集群的 max_workers
。
扩容和缩容速度#
如果需要,你还可以控制应将节点添加到集群或从集群中移除的速度。对于有许多短时任务的应用程序,你可能希望调整扩容和缩容速度,使其更保守。
upscaling_speed[default_value=1.0, min_value=1.0]
: 允许挂起的节点数量,是当前节点数量的倍数。值越高,扩容越积极。例如,如果设置为 1.0,集群在任何时候最多可以增长 100%,因此如果集群当前有 20 个节点,则最多允许 20 个待启动节点。无论此设置如何,待启动节点的最小数量为 5。
idle_timeout_minutes[default_value=5, min_value=0]
: 闲置 worker 节点被自动扩缩容器移除前需要经过的分钟数。值越小,缩容越积极。当 worker 节点没有活动的任务、actor 或引用的对象(无论是在内存中还是溢出到磁盘)时,它们被视为闲置。此参数不影响 head 节点。
编程方式扩缩容#
有关通过编程方式访问自动扩缩容器的更多信息,请参阅编程方式集群扩缩容指南。