配额和限制

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

  • 配额具有默认值,但您通常可以申请 调整。
  • 系统限制是无法更改的固定值。

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

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

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

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

如需了解详情,请参阅 Cloud 配额概览

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

配额

以下配额适用于 Media CDN。如果您需要更高的配额, 请与您的 Google Cloud 销售团队联系并申请调整。如需了解详情, 请参阅申请调整配额

配置

推荐项 默认配额
每个项目的 EdgeCacheService 资源数量上限 20
每个项目的 EdgeCacheOrigin 资源数量上限 30
每个项目的 EdgeCacheKeyset 资源数量上限 10

系统限制

以下限制适用于 Media CDN。

配置

推荐项 限制 备注
每个 EdgeCacheServiceRouteRules 资源数量上限 200

每个 EdgeCacheService 最多可以定义 200 RouteRules 资源。

每个 EdgeCacheServicePathMatchers 资源数量上限 50

每个 EdgeCacheService 最多可以定义 50 PathMatchers 资源。

每个服务的 SSL 证书数量上限 5 请参阅每个项目的 SSL 证书配额。
每个 EdgeCacheKeyset 的公钥数量上限 3 密钥集中的多个密钥支持密钥 轮替。请定期移除不使用的 密钥。
每个 EdgeCacheKeyset 的验证共享密钥数量上限 3 密钥集中的多个密钥旨在支持密钥轮替:您应定期移除较旧且不使用的密钥。

HTTP 标头、请求和状态代码

推荐项 限制 备注
请求标头大小上限,包括请求路径 16 KiB 此限制无法增加。

根据底层协议,请求连接要么在未写入响应代码的情况下关闭,要么请求被拒绝并返回 HTTP 431 Request Header Fields Too Long 响应。

如果启用了日志记录,这些请求会记录 statusDetailsheaders_too_long

请求正文大小上限 16 KiB 此限制无法增加。

如果请求正文超出此限制,请求将被拒绝并返回 HTTP 413 Content Too Large 状态代码。

响应标头大小上限 大约 128 KiB

如果来源响应的标头超出此限制,系统会向客户端发送 HTTP 502 Bad Gateway 状态代码。如果启用了日志记录,这些响应会记录 statusDetails 值为 backend_response_headers_too_long

可缓存对象大小上限 100 GiB

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

不可缓存的响应大小上限 10239 MiB

这是当对象不可缓存时,Media CDN 代理的响应(包括 标头)中的字节数上限。不可缓存的响应在达到 限制后会被截断。

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

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

例如,Host 会变为 host,而 Keep-Alive 会变为 keep-alive

标头值的大小写不会更改。

API 请求速率限制

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

推荐项 限制
每个 EdgeCacheService 的失效内容数量 每分钟 10 个
每个项目的所有不在 networkservices 命名空间中的调用 每分钟 1,200 次调用
只读:GetEdgeCache*ListEdgeCache* 每个项目 每分钟 100 次
读/写:每个项目的所有不在 networkservices 命名空间中且未标记为只读的内容 每分钟 100 次

我们建议您一次提交一个更新请求,例如 createpatchdelete。虽然 API 会将多个同步请求排队,但同时提交这些请求可能会导致延迟时间显著增加,处理时间也会延长,因为系统会按顺序处理每个项。

客户端超时

超时 时长上限 状态代码 说明
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 配置的 connectTimeoutreadTimeout、 和 responseTimeout 值。

  • responseTimeoutreadTimeout 控制流式响应的时长。在 Media CDN 确定要使用上游响应后,connectTimeoutmaxAttemptsTimeout 都不重要。此时,readTimeoutresponseTimeout 生效。

无论每个 EdgeCacheOrigin 设置的 maxAttempts 是多少,Media CDN 最多会尝试连接到所有来源四次。 Media CDN 使用主 EdgeCacheOrigin 中的 maxAttemptsTimeout 值。每次尝试的超时值(connectTimeoutreadTimeoutresponseTimeout)都是为每次尝试的 EdgeCacheOrigin 配置的。

下表介绍了超时字段:

字段 默认值 说明
connectTimeout 5 秒

从 Media CDN 开始向来源发出请求到 Media CDN 确定响应是否可用,Media CDN 可以花费的最长时间。实际上,connectTimeout 涵盖了从创建请求开始,然后执行 DNS 查找,然后执行 TLS 握手、TCP/QUIC 连接建立, 一直到获取包含 HTTP 状态代码的响应标头 的时间。

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

maxAttemptsTimeout 15 秒

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

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

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

readTimeout 15 秒

单个 HTTP 响应的读取之间等待的最大时长。 readTimeoutresponseTimeout 的限制。 所有 HTTP 响应读取都必须在由 responseTimeout设置的截止时间之前完成。超时值必须介于 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 控制台。如需了解详情,请参阅申请配额调整

资源可用性

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

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

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