配額與限制

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

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

Google Cloud 會使用配額來確保公平性,並減少資源使用量和可用性突然暴增的情況。配額會限制專案可使用的Google Cloud 資源 Google Cloud 數量。配額適用於各種資源類型,包括硬體、軟體和網路元件。舉例來說,配額可以限制對服務發出的 API 呼叫數、專案並行使用的負載平衡器數量,或是可建立的專案數量。配額可以預防服務過載,進而保障Google Cloud 使用者社群的權益。配額也能協助您管理自己的 Google Cloud 資源。

Cloud Quotas 系統會執行下列操作:

在大多數情況下,如果您嘗試使用的資源超過配額,系統會封鎖資源存取權,導致您嘗試執行的工作失敗。

配額通常是在 Google Cloud 專案 層級套用。在一個專案中使用資源,不會影響另一個專案的可用配額。在 Google Cloud 專案中,所有應用程式和 IP 位址會共用配額。

此外,Media CDN 資源也有系統限制。 系統限制無法變更。

限制

下列限制適用於 Media CDN。

設定

項目 限制 附註
EdgeCacheService 數量上限 每項專案 20 個 如要提高這項上限,請與 Google Cloud 銷售團隊聯絡。
EdgeCacheOrigin 數量上限 每項專案 30 個 如要提高這項上限,請與 Google Cloud 銷售團隊聯絡。
EdgeCacheKeyset 數量上限 每項專案 10 個 如要提高這項上限,請與 Google Cloud 銷售團隊聯絡。
每個 RouteRules 的數量上限 EdgeCacheService 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 給用戶端。如果已啟用記錄功能,這些事件會以 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 次

用戶端逾時

逾時 時間長度上限 回應碼 說明
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 值。系統會為每次嘗試設定每次嘗試的逾時值 (connectTimeoutreadTimeoutresponseTimeout)。EdgeCacheOrigin

下表說明逾時欄位:

欄位 預設 說明
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。