設定執行個體的記憶體限制

您可以選擇要為 Cloud Run 執行個體提供的記憶體大小。本頁說明如何指定執行個體的可用記憶體容量。

瞭解記憶體用量

超出允許記憶體限制的 Cloud Run 執行個體會遭到終止。

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

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

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

設定及更新記憶體限制

您可以在 Cloud Run 執行個體上設定記憶體限制。 根據預設,分配給每個執行個體的記憶體為 2 GiB。

設定 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 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。

設定記憶體限制

變更任何設定都會建立新的修訂版本。除非您明確做出更新,改變這項設定,否則後續的修訂版本也會自動取得這個設定。

您可以使用 Google Cloud CLI 或 YAML,為 Cloud Run 執行個體設定記憶體限制:

gcloud

您可以使用以下指令更新特定執行個體的記憶體配置

gcloud beta run instances update INSTANCE --memory SIZE

更改下列內容:

  • INSTANCE:執行個體的名稱
  • SIZECPU 和記憶體表格中的記憶體大小。記憶體大小格式為定點數或浮點數,後面加上單位 GM,分別對應於 GB 或 MB;或者是使用 2 的 n 次冪當量 GiMi,分別對應於 GiB 或 MiB。

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

gcloud beta run instances deploy --image IMAGE_URL --memory SIZE

更改下列內容:

  • IMAGE_URL:容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/hello:latest
  • SIZECPU 和記憶體表格中的記憶體大小。大小的格式為固定點數或浮點數,後面加上單位:G 或 M 分別對應於 GB 或 MB;或者是使用 2 的 n 次冪當量:Gi 或 Mi 分別對應於 GiB 或 MiB。

YAML

  1. 如果您要建立新執行個體,請略過這個步驟。 如要更新現有執行個體,請下載其 YAML 設定

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. 以下範例包含 YAML 設定:

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - image: IMAGE_URL
        resources:
          limits:
            memory: SIZE

    更改下列內容:

    • INSTANCE:Cloud Run 執行個體的名稱。
    • IMAGE_URL:容器映像檔的參照,例如 us-docker.pkg.dev/cloudrun/container/hello:latest
    • SIZE:所選記憶體大小。 格式為定點數或浮點數,後面加上單位 GM,分別對應於 GB 或 MB;或者是使用 2 的 n 次冪當量 GiMi,分別對應於 GiB 或 MiB。
  3. 使用下列指令建立或更新執行個體:

    gcloud beta run instances replace instance.yaml