为实例配置内存限制

您可以选择为 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 吉比字节 (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:实例的名称
  • SIZE:来自 CPU 和内存表 的内存大小。 内存大小的格式为定点数或浮点数,后接单位GM(分别表示千兆字节或兆字节),也可以使用等效的 2 的幂次方数,后接单位 GiMi(分别表示吉比字节或兆比字节)。

您还可以在部署期间使用以下命令设置内存限制:

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

替换以下内容:

  • IMAGE_URL:对容器映像的引用,例如 us-docker.pkg.dev/cloudrun/container/hello:latest
  • SIZE:来自 CPU 和内存表 的内存大小。 内存大小的格式为定点数或浮点数,后接单位 G 或 M(分别对应于千兆字节或兆字节),也可以使用等效的 2 的幂次方单位 Gi 或 Mi(分别对应于吉比字节或兆比字节)。

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(分别表示千兆字节或兆字节), 也可以使用 2 的幂次方数:GiMi (分别表示吉比字节或兆比字节)。
  3. 使用以下命令创建或更新实例:

    gcloud beta run instances replace instance.yaml