關於執行個體數量上限

根據預設,Cloud Run 服務的執行個體數量上限取決於下列相關配額限制的最低值。每個區域的上限也會受到 Cloud Run 服務的 CPU 和記憶體設定影響。具體來說,服務可用的執行個體數量上限是下列各項的最小值:

  • 區域 CPU 配額除以服務的 CPU 設定。
  • 區域記憶體配額除以服務的記憶體設定。
  • 區域 GPU 配額 (不論是否包含可用區備援),除以服務的 GPU 設定。

舉例來說,如果基準配額為 1000 個 vCPU 或 2000 GiB 記憶體,則部署作業使用 2 GiB 記憶體或 1 個 CPU 時,單一服務最多可指定 1000 個執行個體。

這些配額也會計為 Cloud Run 資源在區域中所有使用中資源的總和。如果總用量達到其中一個上限,您可能會無法擴大規模或啟動新的工作執行作業。

您可以在控制台的配額頁面中,查看區域的基準 CPU、記憶體和 GPU 總配額限制。

如何提高基準區域配額

如果 Cloud Run 服務部署的區域需要更多 CPU、記憶體或 GPU 總數,可以申請提高配額

設定執行個體數量上限的最佳做法

下一節說明為服務設定執行個體上限的最佳做法。

事件導向服務的最佳執行個體數量上限

事件驅動型服務 (例如函式) 可能會根據傳入的事件,出現零星的流量尖峰。如要為這些服務決定最佳執行個體數量上限值,請考量服務叫用時間、預期的平均叫用次數、高峰叫用頻率,以及叫用失敗的容錯能力等因素。

一般來說,建議先將執行個體數量上限值設為 3,然後監控叫用失敗情形,再視需要調高此值。

所有執行個體忙碌時的要求處理方式

在正常情況下,服務會建立新的執行個體進行擴充,以處理外來流量負載。不過若已設定執行個體數量上限,可能會發生執行個體數量不足以應付傳入流量負載的情況。

此時,Cloud Run 會嘗試處理新的傳入要求最多 30 秒:

  • 如果執行個體在這段時間內完成處理要求,可能會開始處理新的傳入要求。
  • 如果沒有可用的執行個體,要求就會失敗。

Cloud Run 會自動儲存要傳送至事件驅動服務的事件,直到有可用容量為止。

超出 Cloud Run 資源調度能力的執行個體數量上限

當您指定執行個體數量上限值時,所設定的是最大數量。設定很高的上限並不代表服務能擴充至指定的執行個體數量,只代表在任何時間點能共存的執行個體數量,不能超過該上限。

此外,設定執行個體數量上限,可能會影響 Cloud Run 用來滿足流量需求的資源調度策略。一般來說,Cloud Run 會優先遵守您指定的上限,而不是擴充資源且可能超出上限。

處理流量高峰

某些情況下 (例如流量暴增),Cloud Run 可能會在短暫期間內,建立超過指定數量上限的執行個體。如果您的服務無法容許這樣的暫時行為,建議預留安全餘裕,設定較低的執行個體數量上限值,確保不超出服務的容許範圍。

部署作業

部署新修訂版本時,Cloud Run 會將流量從舊版遷移至新版。由於執行個體數量上限是針對各個修訂版本分別設定,部署後可能會暫時超過指定的上限。

舉例來說,假設某服務的執行個體數量上限是 5 個。在一般情況下,服務處理要求時最多可擴充至 5 個執行個體。部署的新修訂版本設有自己的執行個體數量上限 5 個。

部署新修訂版本時,舊版修訂版本執行中的要求處理作業不會中斷,而是會持續進行。新的傳入要求會由新部署的服務修訂版本處理。

因此,部署新修訂版本後,上例中的服務最多可有 10 個執行個體 (新舊版各 5 個)。舊版修訂內容的執行個體停止運作所需的時間,取決於完成所有進行中要求處理作業所需的時間。選取適當的執行個體數量上限時,請一併考量這項因素。

費用注意事項

您可以透過執行個體數量上限設定建立費用安全限制,藉此控管費用。設定較高的上限會優先考量可用性,但可能會因流量突然暴增或設定錯誤,而產生意外的帳單費用。為確保成本不會超出預算,請在首次部署服務時,於服務層級設定這項設定。建議您先將執行個體數量上限設為 3,以免預算超出預期。

詳情請參閱 Cloud Run 定價,或使用定價計算機估算費用。如需其他費用控管工具,請參閱資源分配配額帳單預算和快訊