本页介绍如何指定每个 Cloud Run 实例所使用的 vCPU 数量。默认情况下,系统会将 Cloud Run 容器实例限制为 2 个 vCPU。您可以按照本页中的说明增加或减少此值。
设置和更新 vCPU 限制
默认情况下,每个实例的 vCPU 和内存分别设置为 2 个和 2 GiB。您可以将此值更改为下表中的任何值。
并发不可配置,已设置为 80。
vCPU 和内存表
以下是 vCPU 的内存要求:
| 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 |
大于 1 的值必须是整数值。
vCPU 数量上限
您可以配置的 vCPU 数量上限为 8 个。
vCPU 的最低数量
实例的最小 vCPU 为 1 个 vCPU。虽然可以为每个容器配置部分 CPU,但实例中所有容器的 CPU 总和必须大于或等于 1 个 vCPU。
费用注意事项
Cloud Run 资源的费用受其 CPU 配置和资源活跃时长等因素的影响。过度预配资源可能会增加您的费用。如需确定哪种 CPU 配置可能最适合您的资源,请执行以下操作:
- 为 CPU 限制建立初始基准配置,以平衡 CPU 利用率和费用。
- 在测试负载下的系统时,在 Cloud Monitoring 中监控 CPU 利用率指标。
- 根据需要调整 CPU 配置。
如果 CPU 利用率在峰值负载下一直较低,请考虑减少 vCPU 分配。如果延迟时间较长,请考虑增加 vCPU 分配。
您可以在 Cloud Hub 优化页面上查看资源的费用摘要数据、利用率数据和费用优化建议。如需了解详情,请查看 Cloud Run 价格或使用价格计算器估算费用。
CPU 突发和节流
Cloud Run 实例使用共享 CPU 分配模型,具有基准配额和突发能力,其管理方式与 Linux 调度程序 cgroup 分配类似。
为 Cloud Run 实例配置 vCPU 限制时,CPU 行为由以下机制组成:
- 基准配额:每个实例的每个配置的 vCPU 都会分配 6.25%(1/16)的持续基准配额。您可以在此基准内无限期地运行实例。
- 突发容量:当实例的运行低于基准容量时,它会持续将未使用的 CPU 时间累积到突发平衡预算中(最多 500 秒)。当工作负载触发计算密集型任务时,实例会自动突增至其配置的 vCPU 分配的 100%,直到其累积的突增余额耗尽。
- 节流:在高 CPU 利用率期间,一旦突增余额耗尽,实例就会被节流回其基准配额(每个配置的 vCPU 为 6.25%),直到累积了额外的突增余额。
- 补充:只要 CPU 使用率降至 6.25% 的基准以下,突发预算就会补充。
所需的角色
如需获得配置和部署 Cloud Run 实例所需的权限,请让您的管理员为您授予以下 IAM 角色:
- Cloud Run 实例的 Cloud Run Developer (
roles/run.developer) 角色 - 服务身份的 Service Account User (
roles/iam.serviceAccountUser) 角色
如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色和 Cloud Run IAM 权限。如果您的 Cloud Run 实例与Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限和管理访问权限。
配置 CPU 限制
您可以使用 Google Cloud CLI 或 YAML 为 Cloud Run 实例设置 CPU 限制:
gcloud
对于给定的实例,您可以使用以下命令来更新 CPU 限制:
gcloud beta run instances update INSTANCE --cpu CPU
替换以下内容:
- INSTANCE:实例的名称。
- CPU:CPU 限制。指定
1个、2个、4个、6个或8个 CPU,并遵循 CPU 和内存表中显示的要求。
您还可以在部署期间使用以下命令设置 CPU:
gcloud beta run instances deploy --image IMAGE_URL --cpu CPU
替换以下内容:
IMAGE_URL:对容器映像的引用,例如us-docker.pkg.dev/cloudrun/container/hello:latest。- CPU:
1个、2个、4个、6个或8个 CPU,并遵循 CPU 和内存表中显示的要求。
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: cpu: `CPU`
替换以下内容:
- INSTANCE:Cloud Run 实例的名称。
IMAGE_URL:对容器映像的引用,例如us-docker.pkg.dev/cloudrun/container/hello:latest。- CPU:CPU 限制值。
指定
1、2、4、6或8个 CPU,或者如果少于 1 个 CPU,请指定 0.08 到 1.00 之间的值(以 0.01 为增量)。(如需了解所需设置,请参阅设置和更新 CPU 限制下的表。)
使用以下命令创建或更新实例:
gcloud beta run instances replace instance.yaml
示例场景:2 个 vCPU 的实例
如果实例配置的 vCPU 数量上限为 2,则:
- 基准运行:实例可以持续运行,最多消耗 0.125 个 vCPU(2 个 vCPU 的 6.25%)。在以该基准运行期间,它会累积突发余额。
- 完全突增:当工作负载需要额外的处理能力时,实例会突增到 2 个 vCPU 的完整处理能力(利用率为 100%),并消耗其累积的突增预算。
- 限制:当突增余额预算耗尽时,实例会被限制回 0.125 vCPU 基准,直到它累积新的突增余额。
查看实例的 CPU 配置
您可以使用 Google Cloud CLI 命令 gcloud beta run instances describe 查看配置详细信息。