为实例配置 CPU 限制

本页介绍如何指定每个 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 配置可能最适合您的资源,请执行以下操作:

  1. 为 CPU 限制建立初始基准配置,以平衡 CPU 利用率和费用。
  2. 在测试负载下的系统时,在 Cloud Monitoring 中监控 CPU 利用率指标。
  3. 根据需要调整 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 关联的 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
  • CPU1 个、2 个、4 个、6 个或 8 个 CPU,并遵循 CPU 和内存表中显示的要求。

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:
          cpu: `CPU`

    替换以下内容:

    • INSTANCE:Cloud Run 实例的名称。
    • IMAGE_URL:对容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/hello:latest
    • CPU:CPU 限制值。 指定 12468 个 CPU,或者如果少于 1 个 CPU,请指定 0.08 到 1.00 之间的值(以 0.01 为增量)。(如需了解所需设置,请参阅设置和更新 CPU 限制下的表。)
  3. 使用以下命令创建或更新实例:

    gcloud beta run instances replace instance.yaml

示例场景:2 个 vCPU 的实例

如果实例配置的 vCPU 数量上限为 2,则:

  1. 基准运行:实例可以持续运行,最多消耗 0.125 个 vCPU(2 个 vCPU 的 6.25%)。在以该基准运行期间,它会累积突发余额。
  2. 完全突增:当工作负载需要额外的处理能力时,实例会突增到 2 个 vCPU 的完整处理能力(利用率为 100%),并消耗其累积的突增预算。
  3. 限制:当突增余额预算耗尽时,实例会被限制回 0.125 vCPU 基准,直到它累积新的突增余额。

查看实例的 CPU 配置

您可以使用 Google Cloud CLI 命令 gcloud beta run instances describe 查看配置详细信息。