您可以選擇要為 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 執行個體的費用會受到記憶體設定和資源啟用時間長度等因素影響。資源過度佈建可能會導致費用增加。如要判斷最適合資源的記憶體設定,請按照下列步驟操作:
- 建立初始基準設定。
- 在測試系統負載時,請在 Cloud Monitoring 中監控記憶體使用率指標。
- 視需要調整設定。
如果記憶體使用率持續偏低,請考慮減少分配的記憶體。如果延遲時間較長,且記憶體用量接近 100%,請考慮增加分配的記憶體。如果發生記憶體不足 (OOM) 錯誤,請增加分配的記憶體,或修改應用程式以防止記憶體流失,並減少記憶體用量。請參閱 Cloud Monitoring 資訊主頁,進一步瞭解記憶體使用率。
詳情請參閱 Cloud Run 定價,或使用定價計算機估算費用。
必要的角色
如要取得設定及部署 Cloud Run 執行個體所需的權限,請要求管理員授予您下列 IAM 角色:
- Cloud Run 執行個體上的 Cloud Run 開發人員 (
roles/run.developer) - 服務身分上的服務帳戶使用者 (
roles/iam.serviceAccountUser)
如需與 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:執行個體的名稱
- SIZE:CPU 和記憶體表格中的記憶體大小。記憶體大小格式為定點數或浮點數,後面加上單位
G或M,分別對應於 GB 或 MB;或者是使用 2 的 n 次冪當量Gi或Mi,分別對應於 GiB 或 MiB。
您也可以使用以下指令,於部署期間設定記憶體限制:
gcloud beta run instances deploy --image IMAGE_URL --memory SIZE
更改下列內容:
IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/hello:latest。- SIZE:CPU 和記憶體表格中的記憶體大小。大小的格式為固定點數或浮點數,後面加上單位:G 或 M 分別對應於 GB 或 MB;或者是使用 2 的 n 次冪當量:Gi 或 Mi 分別對應於 GiB 或 MiB。
YAML
如果您要建立新執行個體,請略過這個步驟。 如要更新現有執行個體,請下載其 YAML 設定:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
以下範例包含 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:所選記憶體大小。
格式為定點數或浮點數,後面加上單位
G或M,分別對應於 GB 或 MB;或者是使用 2 的 n 次冪當量Gi或Mi,分別對應於 GiB 或 MiB。
使用下列指令建立或更新執行個體:
gcloud beta run instances replace instance.yaml