設定工作站集區的記憶體限制

您可以選擇要為 Cloud Run worker 集區提供的記憶體量。本頁面說明如何指定 worker 集區可用的記憶體量。

瞭解記憶體用量

如果 Cloud Run 執行個體超過允許的記憶體限制,就會終止。

執行個體的可用記憶體必須足以:

  • 執行 worker 集區執行檔,因為執行檔必須載入記憶體
  • 在 worker 集區程序中分配記憶體
  • 將檔案寫入檔案系統

部署的容器映像檔大小不會影響執行個體的可用記憶體。

設定及更新記憶體上限

您可以設定 Cloud Run worker 集區的記憶體限制。根據預設,分配給每個 worker 集區的記憶體配置為 ,分配給函式的記憶體配置為 256 MiB。

設定 CPU 值時所需的記憶體

設定 CPU 值時,必須提供下列記憶體:

CPU 記憶體需求
1 個 vCPU 512 MiB 至 4 GiB
2 個 vCPU 512 MiB 至 8 GiB
4 個 vCPU 2 至 16 GiB
6 個 vCPU 4 至 24 GiB
8 個 vCPU 4 至 32 GiB

記憶體大小上限

可設定的記憶體容量上限為 32 gibibyte (32 Gi)。

您可以使用自訂組織政策,強制執行記憶體上限。

記憶體下限

記憶體設定下限為 512 MiB。

費用注意事項

Cloud Run worker 集區的費用取決於記憶體設定、資源啟用時間長度等因素。過度佈建資源可能會增加成本。如要判斷最適合資源的記憶體設定,請按照下列步驟操作:

  1. 建立初始基準設定。
  2. 在測試系統負載時,透過 Cloud Monitoring 監控記憶體使用率指標。
  3. 視需要調整設定。

如果記憶體使用率持續偏低,建議減少分配的記憶體。如果延遲時間過長,且記憶體使用率接近 100%,建議您增加分配的記憶體。如果發生記憶體不足 (OOM) 錯誤,請增加分配的記憶體,或修改應用程式,避免記憶體流失並減少記憶體用量。請參閱 Cloud Monitoring 資訊主頁,進一步瞭解記憶體使用率。

如要瞭解詳情,請參閱 Cloud Run 定價,或使用定價計算工具估算費用。

必要的角色

如要取得設定及部署 Cloud Run worker 集區所需的權限,請要求管理員授予您下列 IAM 角色:

如要查看與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run worker 集區與Google Cloud API (例如 Cloud 用戶端程式庫) 互動,請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。

設定記憶體限制

任何設定變更都會建立新的修訂版本。後續修訂版本也會自動套用這項設定,除非您明確更新設定。

您可以使用Google Cloud 控制台、Google Cloud CLI、YAML 或 Terraform,為 Cloud Run worker 集區設定記憶體限制:

控制台

  1. 前往 Google Cloud 控制台的「Cloud Run」頁面:

    前往 Cloud Run。

  2. 從 Cloud Run 導覽選單中選取「Worker pools」(工作站集區):

    1. 如要設定現有 worker 集區,請按一下該集區,然後點選「Edit and deploy new revision」(編輯並部署新的修訂版本)。

    2. 如要設定新的 worker 集區,請按一下「Deploy container」(部署容器),然後填寫初始 worker 集區頁面。然後按一下「Containers, Networking, Security」(容器、網路、安全性),展開工作站集區設定頁面。

  3. 按一下「容器」分頁標籤。

  4. 從「Memory」(記憶體) 清單中選取記憶體大小。

  5. 按一下 [Create] (建立) 或 [Deploy] (部署)。

gcloud

您可以使用下列指令,更新特定 worker 集區的記憶體配置:

gcloud run worker-pools update WORKER_POOL --memory SIZE

更改下列內容:

  • WORKER_POOL:worker 集區的名稱
  • SIZE:CPU 和記憶體表格中的記憶體大小。大小的格式為固定或浮點數,後面加上單位:G 或 M 分別對應至 GB 或 MB,或使用 2 的冪等值:Gi 或 Mi 分別對應至 GiB 或 MiB。

您也可以使用以下指令,於部署期間設定記憶體限制:

gcloud run worker-pools deploy --image IMAGE_URL --memory SIZE

更改下列內容:

  • IMAGE_URL:參照包含 worker 集區的容器映像檔,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest。
  • SIZE:CPU 和記憶體表格中的記憶體大小。大小的格式為固定或浮點數,後面加上單位:G 或 M 分別對應 gigabyte 或 megabyte,或使用 2 的冪次方等效值:Gi 或 Mi 分別對應 gibibyte 或 mebibyte。

YAML

  1. 如果您要建立新的 worker 集區,請略過這個步驟。如要更新現有 worker 集區,請下載其 YAML 設定:

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. 以下範例包含 YAML 設定:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
            resources:
              limits:
                memory: SIZE

    更改下列內容:

    • WORKER_POOL:Cloud Run worker 集區的名稱。
    • IMAGE_URL:參照包含 worker 集區的容器映像檔,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest。
    • SIZE:所選記憶體大小。格式為固定或浮點數,後面加上單位:G 或 M 分別對應至 GB 或 MB,或使用 2 的冪次方等效值:Gi 或 Mi 分別對應至 GiB 或 MiB。
  3. 使用下列指令建立或更新 worker 集區:

    gcloud run worker-pools replace worker-pool.yaml

    gcloud run worker-pools replace 指令預設會使用 worker-pool.yaml 檔案 (如有)。

Terraform

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"

  template {
    containers {
      image = "IMAGE_URL"
      resources {
        limits = {
          memory = "SIZE"
        }
      }
    }
  }
}

更改下列內容:

  • WORKER_POOL:worker 集區的名稱。
  • REGION: Google Cloud 區域。例如 europe-west1。
  • IMAGE_URL:參照含有 worker 集區的容器映像檔,例如 us-docker.pkg.dev/cloudrun/container/worker-pool:latest
  • SIZE:CPU 和記憶體表格中的記憶體大小。大小的格式為固定或浮點數,後面加上單位:G 或 M 分別對應至 GB 或 MB,或使用 2 的冪等值:Gi 或 Mi 分別對應至 GiB 或 MiB。

查看 worker 集區的記憶體設定

  1. 前往 Google Cloud 控制台的「Cloud Run」頁面:

    前往 Cloud Run。

  2. 按一下「Worker pools」(worker 集區),即可顯示已部署的 worker 集區清單。

  3. 按一下要檢查的工作站集區,顯示詳細資料窗格。

  4. 按一下「Containers」(容器) 分頁標籤,即可查看各容器的工作站集區記憶體設定。