配額與限制

本文列出 PostgreSQL 適用的 AlloyDB 適用的配額和系統限制。

  • 配額會指定您可使用的可計數共用資源數量。配額是由 Google Cloud 服務 (例如 AlloyDB for PostgreSQL) 定義。
  • 系統限制是固定值,無法變更。

配額

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

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

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

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

詳情請參閱 Cloud Quotas 總覽

Google Cloud 也提供免費試用配額,讓使用者透過專案免費試用部分功能。 Google Cloud

並非所有專案的配額都相同。如果用量增加,配額可能會隨之增加。 Google Cloud

如要進一步瞭解配額,請參閱 Cloud Quotas 說明文件

如要瞭解 AlloyDB 施加的配額,請參閱速率配額資源配額

AlloyDB 資源也有限制。與配額不同,系統限制無法變更。

檢查及編輯配額的權限

如要查看配額,必須具備 serviceusage.quotas.get 權限。

如要變更配額,必須具備 serviceusage.quotas.update 權限。

根據預設,「擁有者」和「編輯者」這些基本 IAM 角色和預先定義的「配額管理員」角色,都擁有這些權限。

查看配額

根據預設, Google Cloud 控制台中的配額表格會列出所有服務的配額。如要查看專案目前的 AlloyDB 資源配額,請使用表格中的「篩選器」清單。

如要查看專案中 AlloyDB 資源的目前配額,請完成下列步驟:

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

    前往配額頁面

  2. 在配額表格中,按一下「篩選器」

  3. 從「屬性」清單中選取「服務」,然後從「值」清單中選取「AlloyDB API」

提高配額

隨著 Google Cloud 使用量增加,您也可以要求更多配額。如果您預期用量將大幅攀升,請提前幾天提出要求,確保系統可以妥善調整您的配額。

  1. 在「配額」頁面中,按一下「篩選器」
  2. 從「屬性」清單中選取「服務」,然後從「值」清單中選取「AlloyDB API」

    如果找不到「AlloyDB API」,表示 AlloyDB Admin API 尚未啟用。

  3. 選取您要變更的配額。

  4. 按一下 [編輯配額]

  5. 輸入您的姓名、電子郵件地址和電話號碼,然後按一下「下一步」

  6. 輸入配額要求,然後按一下「提交要求」

頻率配額

AlloyDB 支援速率配額,又稱速率限制或 API 配額。頻率配額定義了您可以對 AlloyDB API 發出的要求數。

每個頻率配額都對應一或多個 AlloyDB API 方法群組的所有要求。頻率配額會在一段特定時間過後重設,例如每日 API 要求數。

使用 Google Cloud CLI 或 Google Cloud 控制台時,您會向 API 發出要求,這些要求會計入您的頻率限制。如果使用服務帳戶存取 API,相關要求也會計入頻率限制中。

系統會強制執行速率配額,並在每 60 秒 (1 分鐘) 間隔自動補充配額。也就是說,如果專案在 60 秒內達到速率配額上限,就必須等待配額重新填滿,才能在該群組中提出更多要求。如果專案超出速率限制,您會收到 HTTP 429 狀態碼,並附上 rateLimitExceeded 原因。

AlloyDB API 會依作業類型分為六組。系統會根據每分鐘、每個 API 群組、每個專案、每個區域和每位使用者,設定頻率配額。針對這些屬性的每個不重複組合,AlloyDB 會分別設定配額。舉例來說,如果 100 位使用者在特定專案和區域中,於一分鐘內存取 Mutate API,則每位使用者在每個專案和區域組合中,每分鐘可提出 180 到 250 個要求。

各群組的預設配額範圍如下:

群組名稱 說明 每分鐘查詢次數的預設配額範圍 API 方法
連結 API 建立新連結。 180-2000
  • projects.locations.clusters.generateClientCertificate
  • projects.locations.clusters.instances.getConnectionInfo
取得 API 讀取單一資源。 180-1000
  • projects.locations.clusters.get
  • projects.locations.clusters.instances.get
  • projects.locations.backups.get
  • projects.locations.get
取得作業 API 取得長時間執行作業的最新狀態。 950-1400
  • projects.locations.operations.get
列出 API 讀取同一類型的資源群組。 180-1000
  • projects.locations.clusters.list
  • projects.locations.clusters.instances.list
  • projects.locations.backups.list
  • projects.locations.supportedDatabaseFlags.list
  • projects.locations.list
列出作業 API 列出符合要求中特定篩選器的作業。 2200-3000
  • projects.locations.operations.list
變動 API 修改資源狀態。 180-250
  • projects.locations.clusters.create
  • projects.locations.clusters.patch
  • projects.locations.clusters.delete
  • projects.locations.clusters.restore
  • projects.locations.clusters.instances.create
  • projects.locations.clusters.instances.patch
  • projects.locations.clusters.instances.delete
  • projects.locations.clusters.instances.failover
  • projects.locations.clusters.instances.restart
  • projects.locations.backups.create
  • projects.locations.backups.patch
  • projects.locations.backups.delete
  • projects.locations.operations.delete
  • projects.locations.operations.cancel

資源配額

AlloyDB 支援資源配額,也稱為分配配額。在資源供應無虞的前提下,資源配額指的是您最多能建立多少特定類型的資源,資源配額會限制未以頻率計算的資源用量,例如專案在某個時間使用的虛擬機器 (VM) 執行個體數量。

資源配額不會隨時間重設。您必須採取行動釋出未使用的資源,例如刪除不需要的叢集。

系統會對使用的叢集和 vCPU 數量設下資源配額,詳情請參閱以下各節。

叢集資源配額

這項配額適用於每個專案在每個區域的叢集數量。這項配額的預設值介於每個專案每個區域 3 到 10 個叢集,視專案的用量記錄而定。這項配額支援的最大值為每個專案在每個區域中 15 個叢集。

如果您使用 Google Cloud 控制台、gcloud CLI 或 AlloyDB API 提出叢集建立或還原要求,但這會導致配額違規,要求就會失敗,並顯示類似下列內容的錯誤訊息:

Quota limit 'ClustersUsedPerProjectPerRegion' has been exceeded. Limit: 5 in region us-central1.

vCPU 資源配額

這項配額適用於每個專案在每個區域的 vCPU 數量。每個執行個體會耗用一定量的配額,具體取決於使用的 VM 數量。每個主要執行個體會使用兩個 VM,每個讀取集區執行個體都會為所含的每個節點使用一個 VM。建立或更新執行個體時,您會提供每個 VM 使用的 vCPU 數量。

所有客戶專案的預設配額值為 10,000 個 vCPU。

如果您使用 Google Cloud 控制台、gcloud CLI 或 AlloyDB API 建立或更新執行個體,但這會導致配額違規,要求就會失敗,並顯示類似下列內容的錯誤訊息:

Quota limit 'VCPUsUsedPerProjectPerRegion' has been exceeded. Limit: 128 in region us-central1.

儲存空間資源配額

這項配額適用於每個叢集可儲存的資料量。 這項配額的預設值為每個叢集 16 TiB。每個叢集支援的最大值為 128 TiB。

如果您發出資料庫寫入要求 (例如導致違反配額的 INSERT 陳述式),要求就會失敗,並顯示下列錯誤訊息:

AlloyDB instance exceeds available storage quota.

資源可用性

資源配額並無法保證您隨時可以使用這些資源,如果您的區域無法順利供應某項資源,即使您的專案仍有配額,您也無法新建該類型的資源。

限制

如要要求提高上限,請提交客服案件

項目 限制
每個叢集的讀取集區節點 (所有讀取集區執行個體) 20
每個執行個體的並行連線數上限

預設值為 1,000,可調整至最多 240,000

並行連線數上限

除非您將執行個體的 max_connections 旗標設為較高的值,否則 AlloyDB 會將執行個體的並行連線數量上限設為 1,000。

請參考下表,根據執行個體大小決定連線數上限值:

vCPU 記憶體 建議 max_connections
1 8 500
2 16 1000
4 32 2000
8 64 4000
16 128 5000
32 256 5000
48 384 5000
64 512 5000
72 576 5000
96 768 5000
128 864 5000

設定值前,請注意下列事項:

  • 在讀取集區執行個體上設定 max_connections 標記時,新值必須等於或大於叢集主要執行個體的 max_connections 值。
  • 建議每個執行個體 vCPU 最多執行四個並行查詢。
  • 如果工作負載涉及短期連線,建議使用連線集區器,例如 pgbouncerpgpool-II
  • 建議新增應用程式端的連線集區器,例如 HikariCPc3p0
  • 如果您決定將值設為高於建議值 (最多 240,000),請考量每個有效連線的額外記憶體消耗量,這會減少共用緩衝區的記憶體。

    如要計算記憶體用量,請將並行查詢數量乘以為 work_mem 標記設定的值。這個旗標的預設值為 4MB 或執行個體中的 vCPU 數量,以較高者為準。

已儲存查詢的限制

限制
每個專案的儲存查詢數量上限 (包括其他 Google Cloud 產品的儲存查詢) 10,000
每次查詢的大小上限 1 MiB