配额和限制

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

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

配额

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

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

  • 监控 Google 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 基于操作类型分为 6 组。速率配额按每分钟、每个 API 组、每个项目、每个区域和每个用户实施。对于这些属性的每个唯一组合,AlloyDB 都会实施单独的配额。例如,如果有 100 位用户在同一分钟内访问给定项目和区域的 Mutate API,则每位用户针对每个项目和区域组合获得的默认配额为每分钟 180-250 个请求。

每个组的默认配额范围如下:

群组名称 说明 每分钟查询次数的默认配额范围 API 方法
Connect 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
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
ListOperations 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 数量由您在创建或更新实例时提供。

此配额的默认值为每个区域每个项目 128 到 512 个 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
2 16 1000
4 32 2000
8 64 4000
16 128 5000
32 256 5000
64 512 5000
96 768 5000
128 864 5000

在设置此值之前,请注意以下注意事项:

  • 在读取池实例上设置 max_connections 标志时,新值必须与其集群的主实例的 max_connections 值一致或高于该值。
  • 我们建议每个实例 vCPU 最多运行 4 个并发查询。
  • 对于涉及短期连接的工作负载,请考虑使用连接池程序,例如 pgbouncerpgpool-II
  • 我们建议添加应用端连接池,例如 HikariCPc3p0
  • 如果您决定将此值设置为高于建议值的值(最多 24 万),请考虑每个活跃连接的额外内存用量,这会减少共享缓冲区的内存。

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