Vertex AI 上的 Ray 叢集提供兩種資源調度選項:自動調度資源和手動調度資源。叢集可透過自動調度資源功能,根據 Ray 工作和參與者所需的資源,自動調整工作站節點數量。如果您執行大量工作負載,但不確定需要多少資源,建議使用自動調度資源。手動調整節點大小可讓使用者更精細地控管節點。
自動調度資源可降低工作負載成本,但會增加節點啟動負擔,且設定可能較為複雜。如果您是 Ray 新手,請先從非自動調度叢集開始,並使用手動調度功能。
自動調度資源
指定工作站集區的副本數量下限 (min_replica_count
) 和上限 (max_replica_count
),即可啟用 Ray 叢集的自動調度資源功能。
注意事項:
- 設定所有工作站集區的自動調度規格。
- 不支援自訂放大和縮小速度。如需預設值,請參閱 Ray 說明文件中的「Upscaling and downscaling speed」。
設定工作站集區自動調度規格
使用 Google Cloud 控制台或 Python 適用的 Vertex AI SDK,啟用 Ray 叢集的自動調度資源功能。
Ray on Vertex AI SDK
from google.cloud import aiplatform import vertex_ray from vertex_ray import AutoscalingSpec autoscaling_spec = AutoscalingSpec( min_replica_count=1, max_replica_count=3, ) head_node_type = Resources( machine_type="n1-standard-16", node_count=1, ) worker_node_types = [Resources( machine_type="n1-standard-16", accelerator_type="NVIDIA_TESLA_T4", accelerator_count=1, autoscaling_spec=autoscaling_spec, )] # Create the Ray cluster on Vertex AI CLUSTER_RESOURCE_NAME = vertex_ray.create_ray_cluster( head_node_type=head_node_type, worker_node_types=worker_node_types, ... )
主控台
根據 OSS Ray 最佳做法建議,系統會強制將 Ray 頭部節點的邏輯 CPU 數量設為 0,避免在頭部節點上執行任何工作負載。
前往 Google Cloud 控制台的「Ray on Vertex AI」頁面。
按一下「建立叢集」,開啟「建立叢集」面板。
在「建立叢集」面板中,檢查或取代每個步驟的預設叢集資訊。按一下「繼續」完成每個步驟:
點選「建立」。
手動調整資源配置
當 Vertex AI 上的 Ray 叢集工作負載增加或減少時,請手動調整副本數量,以符合需求。舉例來說,如果容量過剩,請縮減工作站集區,以節省費用。
虛擬私有雲對等互連的限制
調整叢集時,您只能變更現有工作站集區中的副本數量。舉例來說,您無法在叢集中新增或移除工作站集區,也無法變更工作站集區的機型。此外,工作站集區的副本數量不得少於一。
如果您使用 VPC 對等互連連線連線至叢集,節點數量上限會受到限制。節點數量上限取決於您建立叢集時的節點數量。詳情請參閱節點數量上限的計算方式。這個上限包含工作站集區和頭部節點。如果您使用預設網路設定,節點數量不得超過建立叢集文件所述的上限。
子網路分配最佳做法
使用私有服務存取 (PSA) 在 Vertex AI 上部署 Ray 時,請務必確保分配的 IP 位址範圍夠大且連續,可容納叢集可能擴充的最大節點數。如果為 PSA 連線保留的 IP 範圍過小或過於分散,就可能發生 IP 耗盡的情況,導致部署失敗。
或者,建議您透過 Private Service Connect 介面在 Vertex AI 上部署 Ray,將 IP 用量降至 /28 子網路。
私人服務存取權監控
最佳做法是使用網路分析器,這是 Google Cloud Network Intelligence Center 中的診斷工具,可自動監控虛擬私有雲 (VPC) 網路設定,偵測錯誤和不盡理想的設定。網路分析器會持續運作,主動執行測試並產生洞察資料,協助您找出、診斷及解決網路問題,避免影響服務可用性。
網路分析器可監控用於私人服務存取權 (PSA) 的子網路,並提供相關的深入分析。這項功能對於管理使用 PSA 的服務 (例如 Cloud SQL、Memorystore 和 Vertex AI) 至關重要。
網路分析器監控 PSA 子網路的主要方式,是提供已分配範圍的 IP 位址使用率洞察資料。
PSA 範圍使用率:網路分析器會主動追蹤您為 PSA 分配的專屬 CIDR 區塊中,IP 位址的分配百分比。這項作業非常重要,因為當您建立代管服務 (例如 Vertex AI) 時,Google 會建立服務供應商虛擬私有雲,並在其中建立子網路,從您分配的區塊中提取 IP 範圍。
主動式快訊:如果 PSA 分配範圍的 IP 位址使用率超過特定門檻 (例如 75%),網路分析器就會產生警告洞察資訊。這項功能會主動提醒您潛在的容量問題,讓您有時間擴充分配的 IP 範圍,以免新服務資源的可用位址用盡。
更新私人服務存取權子網路
如果是 Ray on Vertex AI 部署作業,Google 建議為 PSA 連線分配 /16 或 /17 CIDR 區塊。這會提供足夠大的連續 IP 位址區塊,支援大幅擴充,分別可容納最多 65,536 個或 32,768 個不重複的 IP 位址。即使是大型 Ray 叢集,也能避免 IP 位址耗盡。
如果分配的 IP 位址空間用盡,系統會 Google Cloud 傳回這項錯誤:
無法建立子網路。無法在已分配的 IP 範圍中找到可用區塊。
節點數量上限計算
如果您使用私人服務存取權 (虛擬私有雲對等互連) 連線至節點,請使用下列公式檢查您是否未超過節點數量上限 (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 叢集後,您可以將節點總數擴充至 P
到 M
(含) 之間的任何數量,其中 P
是叢集中的集區數量。
叢集的初始節點總數和擴充目標節點數必須位於同一個顏色方塊中。
更新備用資源數量
使用 Google Cloud 控制台或 Python 適用的 Vertex AI SDK,更新工作站集區的副本數量。如果叢集包含多個工作站集區,您可以在單一要求中個別變更每個集區的副本數量。
Ray on Vertex AI SDK
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, )
控制台
前往 Google Cloud 控制台的「Ray on Vertex AI」頁面。
在叢集清單中,按一下要修改的叢集。
在「叢集詳細資料」頁面中,按一下「編輯叢集」。
在「編輯叢集」窗格中,選取要更新的工作站集區,然後修改副本數量。
按一下「Update」。
請稍候幾分鐘,等待叢集更新。更新完成後,您可以在「叢集詳細資料」頁面查看更新後的副本數量。
點選「建立」。