設定工作的記憶體限制

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

瞭解記憶體用量

如果 Cloud Run 執行個體超出允許的記憶體上限,系統會終止執行個體。

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

  • 執行工作可執行檔,因為可執行檔必須載入記憶體
  • 在工作程序中配置記憶體
  • 將檔案寫入檔案系統

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

設定及更新記憶體限制

您可以為 Cloud Run 工作設定記憶體限制。 根據預設,分配給每個工作的記憶體為 256 MiB,分配給函式的記憶體也是 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 GiB (32 Gi)。

最低記憶體

記憶體設定下限為 512 MiB。

費用注意事項

Cloud Run 作業的費用會受到記憶體設定和資源啟用時間長度等因素影響。資源過度佈建可能會導致費用增加。如要判斷哪種記憶體設定最適合資源,請按照下列步驟操作:

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

如果記憶體使用率持續偏低,請考慮減少分配的記憶體。 如果延遲時間較長,且記憶體使用率接近 100%,請考慮增加分配的記憶體。如果遇到記憶體不足 (OOM) 錯誤,請增加分配的記憶體,或修改應用程式以防止記憶體流失,並減少記憶體用量。請參閱 Cloud Monitoring 資訊主頁,進一步瞭解記憶體使用率。

詳情請參閱「Cloud Run 定價」或使用定價計算機估算費用。

必要的角色

如要取得設定 Cloud Run 作業所需的權限,請要求管理員授予您下列 IAM 角色:

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

設定記憶體上限

您必須為 Cloud Run 工作指定至少 512Mi。

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

控制台

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

    前往 Cloud Run。

  2. 從 Cloud Run 導覽選單中選取「作業」:

    1. 如要建立新工作,請按一下「Deploy container」(部署容器),填寫初始工作設定頁面。

    2. 如要設定現有工作,請選取該工作,然後按一下「View and edit job configuration」(查看及編輯工作設定)。

  3. 按一下「容器、連線、安全性」,展開工作屬性頁面。

  4. 在「Containers」(容器) 分頁中,從「Memory」(記憶體) 清單選取記憶體大小。

  5. 按一下「建立」或「更新」。

gcloud

  • 如要在建立新工作時設定記憶體限制,請執行下列指令:

    gcloud run jobs create JOB --image IMAGE_URL --memory SIZE

    更改下列內容:

    • JOB:Cloud Run 工作名稱。
    • IMAGE_URL:容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/job:latest。
    • SIZE:記憶體大小。大小的格式為固定或浮點數,後接以下單位:G 或 M,分別對應於 GB 或 MB,或使用二的冪等效單位:Gi 或 Mi,分別對應於 GiB 或 MiB。
  • 如要在更新現有工作時設定記憶體限制,請執行下列指令:

    gcloud run jobs update JOB --memory SIZE

YAML

  1. 如要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:

    gcloud run jobs describe JOB --format export > job.yaml
  2. 更新 memory 屬性:

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

    更改下列內容:

    • JOB:Cloud Run 工作名稱。
    • IMAGE_URL:容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/job:latest。
    • SIZE:記憶體大小,至少須為 512Mi。格式為固定或浮點數,後接以下單位:G 或 M,分別對應於 GB 或 MB,或使用二的冪等效單位:Gi 或 Mi,分別對應於 GiB 或 MiB。

    您也可以指定更多設定,例如環境變數或記憶體限制。

  3. 使用下列指令建立或更新作業:

    gcloud run jobs replace job.yaml

    gcloud run jobs replace 指令預設會使用 job.yaml 檔案 (如有)。

Terraform

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

在 Terraform 設定的 google_cloud_run_v2_job 資源中新增下列項目:
resource "google_cloud_run_v2_job" "default" {
  name     = "JOB"
  location = "REGION"
  deletion_protection = false

  template {
    template {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/job"
        resources {
          limits = {
            cpu    = "2"
            memory = "SIZE"
          }
        }
      }
    }
  }
}

更改下列內容:

  • JOB:Cloud Run 工作名稱。
  • REGION: Google Cloud 區域。例如:europe-west1。
  • SIZE:所需記憶體大小,至少須指定 512Mi。格式為定點數或浮點數,後面加上單位 G 或 M,分別對應於 GB 或 MB;或者是使用 2 的 n 次冪當量 Gi 或 Mi,分別對應於 GiB 或 MiB。

查看記憶體上限設定

如要查看 Cloud Run 作業目前的記憶體限制設定,請使用 Google Cloud 控制台或 Google Cloud CLI:

控制台

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

    前往 Cloud Run jobs

  2. 按一下工作,開啟「工作詳細資料」頁面。

  3. 按一下「查看及編輯工作設定」。

  4. 在設定詳細資料中找出記憶體限制設定。

gcloud

  1. 執行下列指令:

    gcloud run jobs describe JOB
  2. 在傳回的設定中找出記憶體限制設定。