配額與限制

本文列出 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 資源的目前配額,請使用表格中的「Filter」(篩選器) 清單。

如要查看專案中 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-2000
  • 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 個叢集,視專案的使用記錄而定。這項配額支援的最大值為每個專案在每個區域中 20 個叢集。

如果您使用 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
每個執行個體的並行連線數量上限

預設上限因執行個體大小而異,可調整至該大小支援的上限

並行連線數上限

根據預設,AlloyDB 會根據執行個體大小設定並行連線數量上限。如要變更這項限制,請設定 max_connections 旗標。

請參閱下表,根據執行個體大小選擇 max_connections 值:

vCPU 記憶體 (GB) 預設 max_connections 值 建議的最高 max_connections 值
1 8 100 200
2 16 100 570
4 32 200 980
8 64 400 2300
14 112 700 4000
16 128 800 4600
22 176 1000 6300
32 256 1000 9175
44 352 1000 12600
48 384 1000 13760
64 512 1000 18350
72 576 1000 20640
88 704 1000 25230
96 768 1000 27525
128 864 1000 30960
144 1152 1000 41290

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

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

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

已儲存查詢的限制

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