配額與限制

這份說明文件提供 Pub/Sub 配額與資源使用限制的相關資訊。

如要進一步瞭解如何追蹤配額 (例如主題或訂閱項目使用率),請參閱監控一文。

查看配額用量及管理配額限制

您可以使用 API 及服務配額資訊主頁,查看特定專案目前的配額與用量。另外,您也可以透過這個資訊主頁一次調整一項配額。

如要同時調整多項配額,請使用 IAM 與管理員配額資訊主頁

您可以透過上述任一個資訊主頁執行以下操作:

  • 調降配額。
  • 申請調高配額限制。

專案用量歸算

針對推送訂閱者總處理量的部分,系統會依據包含推送訂閱的專案收取配額用量費用。

針對下列配額,系統會依據與呼叫者憑證相關的專案收取用量費用,而不是依據包含要求資源的專案計費 (也就是出現在主題或訂閱名稱之中的專案):

  • 發布者總處理量
  • 訂閱者總處理量
  • 系統管理員作業

例如專案 A 的服務帳戶送出發布要求,要在專案 B 內發布主題,那麼系統就會向專案 A 收取配額費用。每項要求都會包含提供專案 ID 的憑證。

配額限制

您可以在 API 和服務的配額資訊主頁中查看及編輯各項專案的配額,配額相關資訊請見下表。

配額 預設配額限制 說明
發布者總處理量 每分鐘 6,000 萬 KB (每秒 1,000 MB) 配額使用量是按照已發布 PubsubMessage 的大小計算:

請注意,一項發布要求中可以包含多項訊息,系統不會針對每則訊息額外收取配額費用。

提取訂閱者總處理量 每分鐘 1 億 2,000 萬 KB (每秒 2,000 MB) 提取作業的配額用量是按照傳回 PubsubMessage 的大小計算:

另外,AcknowledgeModifyAckDeadline 要求中包含的資料量也會計入這項配額:

  • AcknowledgeRequest (RPC)
  • ModifyAckDeadlineRequest (RPC)
    推送訂閱者總處理量 每分鐘 600 萬 KB (每秒 100 MB) 以傳送至推送端點的推送傳遞要求來說,配額用量是按照傳送至推送端點的 PubsubMessage 的大小計算。
    StreamingPull 訂閱者總處理量 每分鐘 1 億 2,000 萬 KB (每秒 2,000 MB) 配額用量是按照已串流至訂閱者的 PubsubMessage 的大小計算:

    請注意,用戶端程式庫會盡可能使用 StreamingPull 作業。

    StreamingPull 公開連線數 每次 30,000 個公開連線 任意時間點的 StreamingPull 公開連線數。請參閱 StreamingPull
    系統管理員作業 每分鐘 6,000 次 (每秒 100 次操作) 每項系統管理員作業 (例如 GetTopicRequest) 都會耗用一個配額單位。

    一般來說,系統管理員作業組合由 Get*, List*, Create*, Delete*, ModifyPushConfig, SetIamPolicy, GetIamPolicyTestIamPermissions 構成。

    總處理量配額單位

    總處理量配額是以 1 KB 為單位計算用量。1 KB 等於 1000 個位元組。舉例來說,如果 PublishRequest 中含有 105 則訊息,每則訊息的大小為 50 個位元組,則使用者資料大小為 105 * 50 bytes = 5250 bytes,因此配額用量為 max(1kB, ceil(5250 bytes/1000)) = 6kB

    資源限制

    資源 限制
    專案 10,000 個主題
    10,000 個訂閱項目
    5,000 張快照
    主題 10,000 個附加訂閱項目
    5,000 張附加快照
    訂閱 未確認訊息會在永久儲存空間內保留 7 天 (自發布當下起算)。保留的訊息數量沒有限制。
    如果系統在 31 天內未偵測到任何訂閱項目用戶端活動,就會自動刪除該訂閱項目。系統會透過多項呼叫偵測用戶端活動,例如 PullAcknowledge 和成功執行的推送作業。
    發布要求 總大小 10 MB
    1,000 則訊息
    訊息 訊息大小 (data 欄位):10 MB
    每則訊息的屬性數:100 項
    屬性鍵大小:256 個位元組
    屬性值大小:1024 個位元組
    推送未解決的訊息 3,000 * N,其中的 N 為發布地區數量。詳情請參閱使用推送訂閱一文。
    StreamingPull 串流 每個公開串流 10 MB/s
    Pull/StreamingPull 訊息 本服務可能會限制每個連線的待處理 StreamingPull 訊息總數。如果您受到這類限制影響,請提高確認訊息的速率和所用連線數量。

    提示與注意事項

    大量作業

    如果您是以一般使用者帳戶 (也就是非服務帳戶) 使用 Cloud SDK gcloud 工具,Pub/Sub 只能以適合手動作業的速率執行工作。一旦超過上述速率限制,系統就會傳回 RESOURCE_EXHAUSTED 錯誤。您只要改用服務帳戶憑證就能解決這個問題。若您有意將 Cloud SDK 提供的憑證用在自動化作業,請啟用服務帳戶執行 Pub/Sub 作業。

    配額不符

    發布或接收訊息小於 1000 位元組時,可能會發生配額不符的情形,例如:

    • 如果您在不同要求中發布 10 則 500 位元組的訊息,發布者配額用量就是 10,000 位元組。這是因為小於 1,000 位元組的訊息,會自動無條件進位至下一個 1,000 位元組。

    • 如果在單一提取回應中接收了前述 10 則訊息,您的訂閱者配額用量可能變成只有 5 KB,這是因為系統會合併計算各則訊息的實際大小,而得出總和就是總體配額。

    • 反之亦然。如果您在一項發布要求中同時發布了多則訊息,或是透過不同的提取要求接收訊息,訂閱者配額用量可能會高於發布者配額用量。