您可以選擇要為 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 集區的費用取決於記憶體設定、資源啟用時間長度等因素。過度佈建資源可能會增加成本。如要判斷最適合資源的記憶體設定,請按照下列步驟操作:
- 建立初始基準設定。
- 在測試系統負載時,透過 Cloud Monitoring 監控記憶體使用率指標。
- 視需要調整設定。
如果記憶體使用率持續偏低,建議減少分配的記憶體。如果延遲時間過長,且記憶體使用率接近 100%,建議您增加分配的記憶體。如果發生記憶體不足 (OOM) 錯誤,請增加分配的記憶體,或修改應用程式,避免記憶體流失並減少記憶體用量。請參閱 Cloud Monitoring 資訊主頁,進一步瞭解記憶體使用率。
如要瞭解詳情,請參閱 Cloud Run 定價,或使用定價計算工具估算費用。
必要的角色
如要取得設定及部署 Cloud Run worker 集區所需的權限,請要求管理員授予您下列 IAM 角色:
- Cloud Run worker 集區的 Cloud Run 開發人員 (
roles/run.developer) - 服務身分的服務帳戶使用者 (
roles/iam.serviceAccountUser)
如要查看與 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 集區設定記憶體限制:
控制台
前往 Google Cloud 控制台的「Cloud Run」頁面:
從 Cloud Run 導覽選單中選取「Worker pools」(工作站集區):
如要設定現有 worker 集區,請按一下該集區,然後點選「Edit and deploy new revision」(編輯並部署新的修訂版本)。
如要設定新的 worker 集區,請按一下「Deploy container」(部署容器),然後填寫初始 worker 集區頁面。然後按一下「Containers, Networking, Security」(容器、網路、安全性),展開工作站集區設定頁面。
按一下「容器」分頁標籤。
從「Memory」(記憶體) 清單中選取記憶體大小。
按一下 [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
如果您要建立新的 worker 集區,請略過這個步驟。如要更新現有 worker 集區,請下載其 YAML 設定:
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
以下範例包含 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。
使用下列指令建立或更新 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 集區的記憶體設定
前往 Google Cloud 控制台的「Cloud Run」頁面:
按一下「Worker pools」(worker 集區),即可顯示已部署的 worker 集區清單。
按一下要檢查的工作站集區,顯示詳細資料窗格。
按一下「Containers」(容器) 分頁標籤,即可查看各容器的工作站集區記憶體設定。