配置自动扩展#

本指南解释了如何使用 Ray 集群启动器配置 Ray 自动扩展器。Ray 自动扩展器是一个 Ray 集群进程,它根据资源需求自动扩展集群的规模。自动扩展器通过根据任务、角色或放置组所需的资源调整集群中的节点数量来实现这一点。

请注意,自动缩放器仅考虑用于缩放的逻辑资源请求(即在 @ray.remote 中指定并在 ray status 中显示的那些),而不是物理机器的利用率。如果用户尝试启动一个参与者、任务或放置组,但资源不足,请求将被排队。自动缩放器会添加节点以满足队列中的资源需求。自动缩放器还会在节点空闲一段时间后移除它们。如果一个节点没有活跃的任务、参与者或对象,则认为它是空闲的。

小技巧

何时使用自动扩展?

自动扩展可以降低工作负载成本,但会增加节点启动开销,并且配置起来可能很棘手。如果你是Ray的新手,我们建议从非自动扩展集群开始。

集群配置参数#

以下选项可在您的集群配置文件中使用。建议您在启动集群之前设置这些选项,但您也可以通过更新集群配置在运行时修改它们。

max_workers[default_value=2, min_value=0]: 要启动的集群工作节点最大数量。请注意,这不包括头节点。

min_workers[default_value=0, min_value=0]: 要启动的集群工作节点数量的最小值,无论利用率如何。请注意,这不包括头节点。此数量必须小于 max_workers

备注

如果在运行时修改 max_workers,自动缩放器将立即移除节点,直到满足此约束。这可能会中断正在运行的工作负载。

如果你使用多种节点类型,你也可以为每种类型设置最小和最大工作线程数:

available_node_types.<node_type_name>.max_workers[default_value=集群最大工作节点数, min_value=0]: 启动给定类型的工作节点的最大数量。此数量必须小于或等于集群的 max_workers

available_node_types.<node_type_name>.min_workers[default_value=0, min_value=0]: 启动给定类型的最小工作节点数,无论利用率如何。所有节点类型的 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]: 在自动缩放器移除空闲工作节点之前需要经过的分钟数。值越小,缩减规模的行为越积极。当工作节点不持有任何活动任务、角色或引用对象(无论是在内存中还是溢出到磁盘)时,它们被视为空闲。此参数不影响头节点。

编程式扩展#

有关对自动伸缩器的编程访问的更多信息,请参阅 编程集群伸缩指南