配额和限制

本文档列出了适用于 Media CDN 的配额和系统限制。

  • 配额用于指定您可以使用的可计数共享资源的数量。配额由 Media CDN 等 Google Cloud 服务定义。
  • 系统限制是无法更改的固定值。

Google Cloud 使用配额来帮助确保公平性并减少资源使用和可用性的激增。配额用于限制您的 Google Cloud 项目可使用的 Google Cloud 资源的数量。配额适用于一系列资源类型,包括硬件、软件和网络组件。例如,配额可以限制对某项服务的 API 调用次数、您的项目并发使用的负载均衡器数量或者您可以创建的项目数量。配额可以防止服务过载,从而保护 Google Cloud 用户社区。配额还可帮助您管理自己的 Google Cloud 资源。

Cloud 配额系统执行以下操作:

  • 监控 Google Cloud 产品和服务的消耗情况
  • 限制这些资源的消耗量
  • 提供请求更改配额值的方法

在大多数情况下,当您尝试消耗的资源超出其配额允许的范围时,系统会阻止对资源的访问,并且您尝试执行的任务会失败。

配额通常在 Google Cloud 项目级层应用。您在一个项目中使用资源不会影响您在另一个项目中的可用配额。在 Google Cloud 项目中,配额在所有应用和 IP 地址间共享。

媒体 CDN 资源也有系统限制。系统限制不能更改。

限制

以下限制适用于媒体 CDN。

配置

限制 备注
EdgeCacheService 的数量上限 每个项目 20 个 如需提高此限额,请与您的 Google Cloud 销售团队联系。
EdgeCacheOrigin 的数量上限 每个项目 30 个 如需提高此限额,请与您的 Google Cloud 销售团队联系。
EdgeCacheKeyset 的数量上限 每个项目 10 个 如果您需要提高此限额,请与您的 Google Cloud 销售团队联系。
每个 EdgeCacheServiceRouteRules 数量上限 2000

每个 EdgeCacheService 最多可以定义 10 个 PathMatchers,每个 PathMatcher 最多可以定义 200 个 RouteRules

此限制无法提高。

每项服务的 SSL 证书数量上限 5 此限制无法提高。另请参阅 SSL 证书的每个项目配额
每个 EdgeCacheKeyset 的公钥数量上限 3 此限制无法提高。密钥集中的多个密钥旨在实现密钥轮替:您应随着时间的推移移除较旧和未使用的密钥。
每个 EdgeCacheKeyset 的验证共享密钥数量上限 3 此限制无法提高。密钥集中的多个密钥旨在实现密钥轮替:您应随着时间的推移移除较旧和未使用的密钥。

HTTP 标头、请求和响应

限制 备注
请求标头大小上限 大约 11 KiB 此限制无法提高。

请求网址和请求标头的大小之和不能超过 15 KiB。

对于 HTTP/1.1 连接,请求会被拒绝并显示 HTTP 431 响应。

HTTP/2 连接会关闭,而不会写入响应代码。

如果日志记录功能处于启用状态,系统会将这些请求记录下来,并将 statusDetails 设为 headers_too_long

请求正文大小上限 16 KiB 如果请求正文超出此限制,系统会拒绝该请求并返回 HTTP 413 Content Too Large 状态代码。
响应标头大小上限 约 128 KiB 此限制无法提高。

如果源响应的标头超出此上限,系统会向客户端发送 HTTP 502 错误。如果启用了日志记录,这些操作会以 statusDetailsbackend_response_headers_too_long 进行记录。

可缓存对象的大小上限 100 GiB 此限制无法提高。

这是媒体 CDN 可以缓存的来源对象的大小上限。较大的对象会被视为不可缓存。

不可缓存的响应大小上限 500 MiB 此限制无法提高。

这是在对象无法缓存时,Media CDN 代理响应正文中的字节数上限。 不可缓存的响应在达到上限后会被截断。

标头小写转换 始终(适用于媒体 CDN) 对于请求和响应标头的字母大小写,媒体 CDN 遵循 HTTP/2 惯例。

无论使用何种协议,所有标头都将转换为小写字母。

例如,Host 会变为 hostKeep-Alive 会变为 keep-alive

标头值的大小写不会发生变化。

API 请求速率限制

如果您需要更高的 API 请求速率限制,则可以查看当前的使用情况并申请提高限制。

限制
失效 每个 EdgeCacheService 每分钟 10 次
不属于 networkservices 命名空间的所有调用 每个项目每分钟 1200 次调用
只读:GetEdgeCache*ListEdgeCache* 每个项目每分钟 100 次
读写:networkservices 命名空间中未标记为只读的所有内容 每个项目每分钟 100 次

客户端超时

超时 时长上限 响应代码 说明
Maximum request duration 5 分钟 HTTP 408 (Request Timeout) 单个请求-响应的时长上限。
Header timeout 10 秒 HTTP 408 (Request Timeout) 客户端必须在多长时间内发送完整的请求标头。

来源超时

  • connectTimeoutmaxAttemptsTimeout 用于限制 Media CDN 查找可用响应所需的时间。

    这两种超时都包括源用来返回标头和确定是使用故障切换还是重定向的时间。connectTimeout 会针对每个来源尝试单独应用,而 maxAttemptsTimeout 包含在所有来源尝试(包括故障切换和重定向)中建立连接所需的时间。重定向后会计为尝试连接到源的额外尝试,并计入为配置的源设置的 maxAttempts

    当 Media CDN 遇到非重定向响应(例如来自重定向或故障切换源站的响应)时,系统会应用 readTimeoutresponseTimeout 值。重定向来源使用为遇到重定向的 EdgeCacheOrigin 配置的 connectTimeoutreadTimeoutresponseTimeout 值。

  • responseTimeoutreadTimeout 用于控制流式响应所需的时间。在 Media CDN 确定要使用上游响应后,connectTimeoutmaxAttemptsTimeout 就没有意义了。此时,readTimeoutresponseTimeout 会生效。

无论每个 EdgeCacheOrigin 设置了什么 maxAttempts,Media CDN 对所有来源最多只会尝试四次。Media CDN 使用主要 EdgeCacheOrigin 中的 maxAttemptsTimeout 值。系统会为每次尝试的 EdgeCacheOrigin 配置每次尝试的超时值 (connectTimeoutreadTimeoutresponseTimeout)。

下表介绍了超时字段:

字段 默认 说明
connectTimeout 5 秒

从媒体 CDN 发起对源的请求到媒体 CDN 确定响应是否可用所需的最长时间。实际上,connectTimeout 涵盖从创建请求、进行 DNS 查找、进行 TLS 握手、建立 TCP/QUIC 连接到获取包含 HTTP 状态代码的响应标头所用的时间。

超时值必须介于 1 秒到 15 秒之间。

maxAttemptsTimeout 15 秒

尝试连接到来源(包括故障切换来源)的最大总次数,达到此上限后,系统会向客户端返回错误。如果达到超时限制,系统会先返回 HTTP 504,然后再返回响应。

超时值必须介于 1 秒到 30 秒之间。

此设置用于定义所有来源连接尝试(包括故障切换来源)的时长,以限制客户端等待内容开始流式传输的总时间。系统只会使用第一个 maxAttemptsTimeout 值,其中“第一个”由为给定路线配置的起点定义。

readTimeout 15 秒

单个 HTTP 响应的读取之间等待的最大时长。 readTimeoutresponseTimeout 的限制。 必须在 responseTimeout 设置的截止期限之前完成对 HTTP 响应的所有读取。超时值必须介于 1 秒到 30 秒之间。如果在响应完成之前达到此超时限制,系统会截断响应并将其记录到日志中。

responseTimeout 30 秒

允许响应完成的最长时长。

超时值必须介于 1 秒到 120 秒之间。

时长从收到第一个正文字节开始计算。如果在响应完成之前达到此超时限制,系统会截断响应并将其记录到日志中。

管理配额

出于各种原因,Media CDN 会对资源用量实施配额限制。例如,配额可避免出现意料之外的用量突增,从而为 Google Cloud 用户社区提供保护。配额还可帮助正在通过免费层级探索 Google Cloud 的用户避免中断试用。

所有项目在开始时都具有相同的配额,您可以通过申请更多配额来进行更改。根据您使用产品的情况,一些配额可能会自动增加。

权限

如需查看配额或申请增加配额,Identity and Access Management (IAM) 主账号需要具备以下某个角色:

任务 所需角色
检查项目的配额 以下之一:
修改配额,申请更多配额 以下之一:
  • Project Owner (roles/owner)
  • Project Editor (roles/editor)
  • Quota Administrator (roles/servicemanagement.quotaAdmin)
  • 具有 serviceusage.quotas.update 权限的自定义角色

查看您的配额

控制台

  1. 在 Google Cloud 控制台中,转到配额页面。

    转到“配额”

  2. 如需搜索要更新的配额,请使用过滤表。 如果您不知道配额的名称,请使用此页面上的链接。

gcloud

使用 Google Cloud CLI 运行以下命令来查看您的配额。请将 PROJECT_ID 替换为您自己的项目 ID。

    gcloud compute project-info describe --project PROJECT_ID

如需查看您在某一区域中已使用的配额,请运行以下命令:

    gcloud compute regions describe example-region
    

超出配额时引发的错误

如果在发出 gcloud 命令时超过了配额,gcloud 会显示一条 quota exceeded 错误消息,并返回退出代码 1

如果在发出 API 请求时超出了配额,Google Cloud 会返回以下 HTTP 状态代码:413 Request Entity Too Large

申请更多配额

如需调整大多数配额,请使用 Google Cloud 控制台。如需了解详情,请参阅申请配额调整

控制台

  1. 在 Google Cloud 控制台中,转到配额页面。

    转到“配额”

  2. 配额页面上,选择您要更改的配额。
  3. 点击位于页面顶部的修改配额
  4. 名称部分,输入名称。
  5. 可选:在手机部分,输入手机号码。
  6. 提交您的申请。 配额申请需要 24 到 48 小时才能完成处理。

资源可用性

每个配额代表您可以创建的特定类型资源的数量上限(如果该资源可用)。必须要注意的是,配额无法保证资源可用性。即使您具有可用配额,如果新资源不可用,您也无法创建新资源。

例如,您的配额可能足以在 us-central1 区域中创建新的区域性外部 IP 地址。但是,如果该区域中没有可用的外部 IP 地址,则无法执行此操作。可用区级资源可用性也会影响您能否创建新资源。

导致资源在整个区域不可用的情况非常罕见。但是,地区内的资源有时可能会耗尽,通常不会影响资源类型的服务等级协议 (SLA)。如需了解详情,请参阅资源的相关 SLA。