在 Vertex AI 上扩缩 Ray 集群

随着工作负载在 Vertex AI 上的 Ray 集群上激增或减少,您可以手动扩缩副本数量以满足需求。例如,如果您具有多余的容量,则可以缩减工作器池以节省费用。本页面介绍如何更改现有工作器池的副本数量。

限制

扩缩集群时,您只能更改现有工作器池中的副本数。例如,您无法向集群添加或从集群中移除工作器池,也无法更改工作器池的机器类型。此外,工作器池的副本数量不能少于 1 个。

如果您使用 VPC 对等互连连接来连接到集群,则节点数上限存在限制。节点数上限取决于集群创建时具有的节点数。如需了解详情,请参阅计算最大节点数。此数量上限不仅包括工作器池,还包括头节点。如果您使用默认网络配置,则节点数不能超过创建集群文档中所述的最大值。

计算节点数上限

如果您使用专用服务访问通道(VPC 对等互连)连接到节点,请使用以下公式检查您未超过节点数上限 (M)(假设 f(x) = min(29, (32 - ceiling(log2(x)))):

  • f(2 * M) = f(2 * N)
  • f(64 * M) = f(64 * N)
  • f(max(32, 16 + M)) = f(max(32, 16 + N))

Ray on Vertex AI 集群可以扩容到的节点总数上限 (M) 取决于您设置的初始节点总数 (N)。创建 Ray on Vertex AI 集群后,您可以将节点总数扩缩到 PM 之间的值(含边界值),其中 P 是集群中的池数量。

更新副本数量

您可以使用 Google Cloud 控制台或 Vertex AI SDK for Python 更新工作器池的副本数量。如果您的集群包含多个工作器池,您可以在单个请求中单独更改其每个副本数量。

控制台

  1. 在 Google Cloud 控制台中,转至“Ray on Vertex AI”页面。

    转至“Ray on Vertex AI”页面

  2. 从集群列表中,点击要修改的集群。

  3. 集群详情页面上,点击修改集群

  4. 修改集群窗格中,选择要更新的工作器池,然后修改副本数量。

  5. 点击更新

    等待集群更新,这可能需要几分钟。更新完成后,您可以在集群详情页面上查看更新后的副本数量。

Vertex AI SDK 上的 Ray

import vertexai
import vertex_ray

vertexai.init()
cluster = vertex_ray.get_ray_cluster("CLUSTER_NAME")

# Get the resource name.
cluster_resource_name = cluster.cluster_resource_name

# Create the new worker pools
new_worker_node_types = []
for worker_node_type in cluster.worker_node_types:
 worker_node_type.node_count = REPLICA_COUNT # new worker pool size
 new_worker_node_types.append(worker_node_type)

# Make update call
updated_cluster_resource_name = vertex_ray.update_ray_cluster(
 cluster_resource_name=cluster_resource_name,
 worker_node_types=new_worker_node_types,
)