配额和限制

本文档列出了适用于 AlloyDB for PostgreSQL 的配额和系统限制。

  • 配额用于指定您可以使用的可计数共享资源的数量。配额由 AlloyDB for PostgreSQL 等 Google Cloud 服务定义。
  • 系统限制是无法更改的固定值。

配额

Google Cloud 使用配额来帮助确保公平性并减少资源使用和可用性的激增。配额用于限制您的 Google Cloud 项目可使用的Google Cloud 资源的数量。配额适用于一系列资源类型,包括硬件、软件和网络组件。例如,配额可以限制对某项服务的 API 调用次数、您的项目并发使用的负载均衡器数量或者您可以创建的项目数量。配额可以防止服务过载,从而保护Google Cloud 用户社区。配额还可以帮助您管理自己的 Google Cloud 资源。

Cloud 配额系统执行以下操作:

在大多数情况下,当您尝试消耗的资源超出其配额允许的范围时,系统会阻止对资源的访问,并且您尝试执行的任务会失败。

配额通常在 Google Cloud 项目级层应用。您在一个项目中使用资源不会影响您在另一个项目中的可用配额。在 Google Cloud 项目中,配额在所有应用和 IP 地址间共享。

Google Cloud 还提供免费试用配额,授予您对项目的有限访问权限,以便您免费试用 Google Cloud 。

并非所有项目的配额都完全相同。如果您的 Google Cloud 用量增加,您的配额可能会增加。

有关配额的详细信息,请参阅使用配额

如需了解 AlloyDB 施加的配额,请参阅速率配额资源配额

AlloyDB 资源也有限制。与配额不同,系统限制无法更改。

用于检查和修改配额的权限

如需查看您的配额,您必须拥有 serviceusage.quotas.get 权限。

如需更改您的配额,您必须拥有 serviceusage.quotas.update 权限。

基本 IAM 角色 Owner 和 Editor 以及预定义的 Quota Administrator 角色中默认包含这些权限。

查看您的配额

默认情况下, Google Cloud 控制台中的配额表会列出所有服务的配额。您可以使用表格中的过滤条件列表来查看项目中 AlloyDB 资源的当前配额。

如需查看您项目中 AlloyDB 资源的当前配额,请完成以下步骤:

  1. 在 Google Cloud 控制台中,进入配额页面。

    转到“配额”

  2. 在配额表格中,点击过滤条件

  3. 属性列表中选择服务,然后从列表中选择 AlloyDB API

增加您的配额

随着 Google Cloud 使用量逐步增加,您的配额可能会相应地增加。如果您预计后续用量会显著增加,应提前几天提出申请,以确保您的配额足够使用。

  1. 配额页面中,点击过滤条件
  2. 属性列表中选择服务,然后从列表中选择 AlloyDB API

    如果找不到 AlloyDB API,则表示 AlloyDB Admin API 未启用。

  3. 选择要更改的配额。

  4. 点击修改配额

  5. 输入您的姓名、邮箱、电话号码,然后点击下一步

  6. 输入您的配额申请,然后点击提交申请

速率配额

AlloyDB 支持速率配额(也称为速率限制或 API 配额)。速率配额用于定义可以向 AlloyDB Admin API 发出的请求数量。

每个速率配额对应于一个或多个 AlloyDB Admin API 方法的所有请求。速率配额会在特定于服务的时间间隔(例如每天的 API 请求数)之后重置。

使用 Google Cloud CLI 或 Google Cloud 控制台时,您是在向 API 发出请求,这些请求将计入您的速率限制。如果您使用服务账号访问该 API,则这些请求也会计入您的速率限制。

速率配额是强制执行的,并且每隔 60 秒(1 分钟)自动重新填充。也就是说,如果您的项目在 60 秒内的任何时间达到速率配额上限,则必须等待配额重新填充,然后才能在该组中发出更多请求。如果您的项目超出速率限制,您会收到 HTTP 429 状态代码和原因 rateLimitExceeded

AlloyDB Admin 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 Admin API 发出创建或恢复集群请求,并且该请求导致配额违规,则请求会失败,并显示类似于以下内容的错误消息:

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

vCPU 资源配额

此配额适用于每个项目在每个区域的 vCPU 数量。每个实例都会消耗一定数量的此类配额,具体取决于其使用的虚拟机数量。每个主实例使用两个虚拟机。每个读取池实例都为所含的每个节点使用一个虚拟机。每个虚拟机使用的 vCPU 数量由您在创建或更新实例时提供。

所有客户项目的配额默认值为 10,000 个 vCPU。

如果您使用 Google Cloud 控制台、gcloud CLI 或 AlloyDB Admin 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

并发连接数上限

AlloyDB 将实例的最大并发连接数限制为 1,000,除非您将其 max_connections 标志设置为更高的值。

您可以参考下表,根据实例大小确定最大连接数值:

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 最多同时运行 4 个查询。
  • 对于涉及短期连接的工作负载,请考虑使用连接池程序,例如 pgbouncerpgpool-II
  • 我们建议添加应用端连接池,例如 HikariCPc3p0
  • 如果您决定将该值设置为高于建议值的值(最高为 240,000),请考虑每个有效连接的额外内存消耗,这会减少共享缓冲区的内存。

    内存消耗量可以通过将并发查询数乘以为 work_mem 标志设置的值来计算。此标志的默认值为 4MB 或实例中的 vCPU 数量,以较大者为准。