配額與限制

這份文件列出 Media CDN 適用的配額和系統限制。

  • 「配額」有預設值,但通常可以申請調整。
  • 「系統限制」是固定值,無法變更。

Google Cloud 使用配額來確保公平性,並減少資源使用量和可用性出現劇烈波動的情況。配額會限制 Google Cloud 專案可使用的Google Cloud 資源數量,且適用多種資源類型,包括軟硬體和網路元件。舉例來說,配額可能會限制能向特定服務發出的 API 呼叫次數、專案可同時使用的負載平衡器數量,或是可建立的專案數量。配額機制可防止服務過載,保障Google Cloud 使用者社群的權益,同時也有助於您管理自己的 Google Cloud 資源。

Cloud Quotas 系統具備以下功能:

如果嘗試使用的資源量超過配額限制,系統通常會阻擋該資源的存取活動,您所執行的工作就會失敗。

配額的計算通常是以 Google Cloud 專案為基準。在某個專案中使用資源,不會影響另一個專案的可用配額。在同一個 Google Cloud 專案內,所有應用程式和 IP 位址會共用配額。

詳情請參閱「Cloud Quotas 總覽」。

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 回應。

如果已啟用記錄功能,系統會記錄這些要求,並將 statusDetails 設為 headers_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 可快取的原始物件大小上限。較大的物件會視為無法快取。

無法快取的回應大小上限 500 MiB

這是指物件無法快取時,Media CDN 代理伺服器回應主體的大小上限 (以位元組為單位)。達到上限後,系統會截斷無法快取的回應。

標頭的小寫轉換 一律為 Media CDN Media CDN 的要求和回應標頭大小寫會遵循 HTTP/2 慣例。

無論使用何種通訊協定,系統都會將所有標頭轉換為小寫格式。

舉例來說,Host 會變為 hostKeep-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 設定的 connectTimeoutreadTimeoutresponseTimeout 值,而該 EdgeCacheOrigin 遇到重新導向。

  • responseTimeoutreadTimeout 可控制串流回覆的耗時長度。Media CDN 決定要使用上游回應後,connectTimeoutmaxAttemptsTimeout 都不重要。此時,readTimeoutresponseTimeout 會生效。

無論每個 EdgeCacheOrigin 設定的 maxAttempts 為何,Media CDN 最多會嘗試連線四個來源。Media CDN 會使用主要 EdgeCacheOrigin 中的 maxAttemptsTimeout 值。系統會為每次嘗試的 EdgeCacheOrigin 設定每次嘗試的逾時值 (connectTimeoutreadTimeoutresponseTimeout)。

下表說明逾時欄位:

欄位 預設 說明
connectTimeout 5 秒

從開始向來源發出要求,到 Media CDN 判斷回應是否可用為止,這段時間的上限。實際上,connectTimeout 涵蓋的時間範圍從建立要求開始,到執行 DNS 查詢、TLS 握手、建立 TCP/QUIC 連線,最後取得包含 HTTP 狀態碼的回應標頭為止。

逾時時間值必須介於 1 秒至 15 秒。

maxAttemptsTimeout 15 秒

所有來源 (包含容錯移轉來源) 連線嘗試的最長持續時間,超過此時間系統即會將錯誤傳回用戶端。如果未在逾時前收到回應,系統會傳回 HTTP 504 狀態碼。

逾時時間值必須介於 1 秒至 30 秒之間。

這項設定會定義所有來源連線嘗試的時間長度 (包括容錯移轉來源),以限制用戶端等待內容開始串流的總時間。系統只會使用第一個 maxAttemptsTimeout 值,其中「第一個」是由指定路徑設定的來源所定義。

readTimeout 15 秒

單一 HTTP 回應讀取作業之間的等待時間上限。readTimeout 的上限為 responseTimeout。 所有 HTTP 回應的讀取作業都必須在 responseTimeout 設定的期限內完成。逾時時間值必須介於 1 秒至 30 秒。如果回應未在逾時前完成,系統會截斷回應並記錄。

responseTimeout 30 秒

允許完成回覆的時間上限。

逾時時間值必須介於 1 秒至 120 秒之間。

這段時間的起算點為收到第一個主體位元組的時間。如果回應未在逾時前完成,系統會截斷回應並記錄。

管理配額

Media CDN 會基於多種原因,對資源用量實施配額限制。舉例來說,限制配額可以預防用量突然暴增的情況,進而保障 Google Cloud 使用者社群的權益。採用 Google Cloud 免費方案探索的使用者也能透過配額,確保不會超出試用範圍。

所有專案最初的配額均相同,您可以要求額外配額來變更配額數量。某些配額可能會依據您使用產品的狀況而自動增加。

權限

如要查看配額或要求增加配額,身分與存取權管理 (IAM) 主體需要具有下列其中一種角色。

工作 必要角色
查看專案的配額 下列任一項:
修改配額,要求額外配額 下列任一項:
  • 專案業主 (roles/owner)
  • 專案編輯器 (roles/editor)
  • 配額管理員 (roles/servicemanagement.quotaAdmin)
  • 具備 serviceusage.quotas.update 權限的自訂角色

查看配額

控制台

  1. 前往 Google Cloud 控制台的「Quotas」(配額) 頁面。

    前往「配額」頁面

  2. 使用篩選表格搜尋要更新的配額。 如果不知道配額名稱,請改用本頁面上的連結。

gcloud

請使用 Google Cloud CLI 執行下列指令,查看配額。使用您自己的專案 ID 替換 PROJECT_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。