为实例配置内存限制

您可以选择为 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 和内存表 的内存大小。 内存大小的格式为定点数或浮点数,后接单位G 或 M(分别表示千兆字节或兆字节),也可以使用等效的 2 的幂次方数,后接单位 Gi 或 Mi(分别表示吉比字节或兆比字节)。

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

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:所选的内存大小。 格式为定点数或浮点数,后接单位: G 或 M(分别表示千兆字节或兆字节), 也可以使用 2 的幂次方数:Gi 或 Mi (分别表示吉比字节或兆比字节)。
  3. 使用以下命令创建或更新实例:

    gcloud beta run instances replace instance.yaml