Google Cloud 使用配额来帮助确保公平性并减少资源使用和可用性的激增。配额用于限制您的 Google Cloud 项目可使用多少Google Cloud 资源。配额适用于一系列资源类型,包括硬件、软件和网络组件。例如,配额可以限制对某项服务的 API 调用次数、您的项目并发使用的负载均衡器数量或者您可以创建的项目数量。配额可以防止服务过载,从而保护Google Cloud 用户社区。配额还可以帮助您管理自己的 Google Cloud 资源。
Cloud 配额系统执行以下操作:
在大多数情况下,当您尝试消耗的资源超出其配额允许的范围时,系统会阻止对资源的访问,并且您尝试执行的任务会失败。
配额通常在 Google Cloud 项目级别应用。您在一个项目中使用资源不会影响您在另一个项目中的可用配额。在 Google Cloud 项目中,配额在所有应用和 IP 地址间共享。
如需了解详情,请参阅 Cloud 配额概览。
在代理检索(以前称为 Vector Search 2.0)中,系统会强制执行配额,以保护服务、确保项目之间公平共享容量,并为您提供更可预测的性能和费用。配额按区域单独跟踪。例如,us-central 中的用量不会影响您在 europe-west4 中的配额。
指标
所有指标名称都以 vectorsearch.googleapis.com/ 为前缀。
速率配额(每分钟请求数和每分钟字节数)
对于数据速率配额,配额按每分钟进行评估,并按每个项目和每个区域(或多区域)应用,还可以选择按每个集合应用。
每次接受的 API 调用都会使计数器递增 1 个请求(或 N 字节,如果是字节配额)。计数器是每历时分钟,并使用滑动窗口评估(不会在 :00 进行硬重置)。
您可以持续以限额运行,而不会看到“补充”效果。
当计数器超出其限制时,后续请求会返回 RESOURCE_EXHAUSTED (HTTP 429),其中包含 reason="RATE_LIMIT_EXCEEDED" 和 quota_metric 字段中的确切指标名称。
控制平面速率配额
以下配额适用于给定项目和区域的资源生命周期,以及对集合和索引的读取和列出操作。
范围:每个项目、每个区域
单位:1/min
限制:每分钟请求数。
| 指标 | 计数 |
|---|---|
collection_management_requests
|
collections.createcollections.updatecollections.delete |
collection_read_requests |
collections.get |
collection_list_requests |
collections.list |
index_management_requests
|
indexes.createindexes.updateindexes.delete |
index_read_requests |
indexes.get |
index_list_requests |
indexes.list |
长时间运行的操作 (LRO) 请求
以下配额适用于给定项目和区域的长时间运行的读取、列出、取消和删除操作。
范围:每个项目、每个区域
单位:1/min
限制:每分钟请求数。
| 指标 | 计数 |
|---|---|
lro_requests
|
operations.getoperations.listoperations.canceloperations.delete |
数据平面速率配额
以下配额适用于给定项目、区域和集合的数据对象、查询和搜索流量。
注意:文本搜索和语义搜索会消耗搜索请求配额 (search_requests)。
范围:每个项目、每个区域、每个集合
单位:1/min
限制:每分钟每个集合的请求数
| 指标 | 计数 |
|---|---|
data_object_writes
|
dataObjects.createdataObjects.updatedataObjects.delete\ 中包含的每个数据对象 batchCreatebatchUpdatebatchDelete |
data_object_reads |
dataObjects.get |
query_requests |
dataObjects.query(仅涉及元数据的过滤查询) |
search_requests |
运行密集或稀疏 ANN 时为 dataObjects.search。 |
knn_search_requests |
运行详尽的 KNN 搜索时。dataObjects.search |
batch_search_requests |
dataObjects.batchSearch(一个请求,无论子搜索有多少个) |
数据平面吞吐量配额
以下配额适用于指定项目、区域和集合每分钟的写入字节数。
范围:每个项目、每个区域、每个集合
单位:1/min
限制:每分钟每个集合的请求数
| 指标 | 计数 |
|---|---|
data_object_write_bytes
|
所有 、 create、update、delete、batchCreate、batchUpdate 和 batchDelete 调用针对集合、数据对象和索引写入的序列化数据和向量字节的总和。 |
批量操作
batchCreate, batchUpdate, batchDelete dataObjects:请求中的每个单独的数据对象都计为data_object_writes的一次写入,并将其序列化大小(以字节为单位)计入data_object_write_bytes。batchSearch dataObjects:计为 1 个请求,计入batch_search_requests,无论捆绑了多少个子搜索。 批量搜索会导致子搜索配额也被计入。
分配配额(当前数量)
分配配额是当前数量。
计数器是项目拥有的资源或正在进行的操作的实时计数。
资源创建或操作开始时,该计数会增加;删除或操作完成时,该计数会减少。
达到限制后,下一次创建调用会返回 RESOURCE_EXHAUSTED。删除现有资源或等待 LRO 完成以释放配额。
控制平面分配配额
以下配额适用于项目在给定项目和区域中可拥有的资源数量或正在运行的操作数量,包括:
- 集合
- 索引
- 对集合、数据对象和索引执行并发创建、导入和导出操作
范围:每个项目、每个区域
单位:1
限制:绝对数量(精确配额)
| 指标 | 计数 |
|---|---|
collections |
项目/区域中存在的集合数量。 |
indexes |
项目/区域中的索引数量(所有集合的总和)。 |
concurrent_index_operations |
运行中的索引 LRO(创建/更新/删除)。 |
concurrent_collection_operations |
运行中的 Collection LRO(创建/更新/删除)。 |
concurrent_data_object_imports |
正在运行的 dataObjects.import LRO。 |
concurrent_data_object_exports |
正在运行的 dataObjects.export LRO。 |
自动嵌入
自动嵌入功能使用 Vertex AI 中的 Gemini API (aiplatform.googleapis.com)。每次 API 请求都会计入 search_requests 或 data_object_writes ,并且嵌入调用会计入预测配额。确保两个 API 都有足够的余量。
用法示例
以下部分介绍了不同的使用场景对配额的影响。
持续写入工作负载
您正在将文档(数据加上一个 768 维的密集向量,约 4 KB)提取到 us-central1 中的单个集合中。同时适用两项配额:
data_object_writes (requests per minute, per collection)
data_object_write_bytes (bytes per minute, per collection)
您受限于首先达到的上限。对于小型对象,请求速率配额通常会受到限制。对于大型对象,字节配额会绑定。
在 Google Cloud 控制台中查看这两个指标,了解哪个指标最接近其限值。
搜索密集型工作负载
向单个集合发送 ANN 查询的服务工作负载消耗 search_requests。如果您的每秒查询次数 (QPS) 峰值接近每个集合的限制,请申请增加配额,或将流量分配到同一区域中的多个集合。
许多小型合集
如果您计划创建的集合数量超过项目的 collections 限制,请在开始创建之前申请增加配额。否则,超出限制的创建调用将失败并显示 RESOURCE_EXHAUSTED。
批量搜索
包含 10 次子搜索的 batchSearch 恰好会消耗 1 个
batch_search_requests,但每次子搜索仍会仅在外层批处理级别上计入其各自的每次子搜索指标。相应地规划批次扇出。
查看配额
如需查看您的配额,请执行以下操作:
- 在 Google Cloud 控制台中打开 IAM 和管理 > 配额页面。
- 针对
Vector Search API服务进行过滤。 - 使用维度(例如位置)列按区域和集合过滤数据平面配额。
每个指标的当前有效限额显示在 Google Cloud 控制台的“配额”页面上,位于指标名称旁边,按区域和(对于数据平面配额)集合进行过滤。
设置配额提醒
我们建议您为工作负载所依赖的配额设置利用率达到 80% 时触发的提醒。如需了解详情,请参阅设置配额提醒和在提醒政策中使用配额指标。
失败
因超出配额而被拒绝的请求不会计入配额。
因其他原因(INVALID_ARGUMENT, NOT_FOUND 等)而失败的请求确实会计入速率配额,因为服务仍需对其进行评估。
vector_schema 验证失败次数。在进行速率配额检查后,它们会在 API 层被拒绝。
超出配额
当请求受到限制时,API 会返回:
gRPC: RESOURCE_EXHAUSTED (8)
HTTP: 429 Too Many Requests
错误消息中包含超出限制的确切指标。
例如:
Quota exceeded for quota metric 'vectorsearch.googleapis.com/search_requests'
and limit 'SearchRequestsPerMinutePerProjectPerRegionPerCollection' of service
'vectorsearch.googleapis.com' for consumer 'project_number:123456789012'.
如果出现这种情况,您可以申请增加配额。
推荐的客户端行为
客户应:
- 对于暂时性速率限制错误,请使用指数退避和抖动进行重试。从大约 1 秒开始,然后退回到大约 32 秒。
- 不重试由分配配额(例如
"too many collections")导致的错误。请删除资源或改为申请增加配额。 - 如果单个集合的热点导致其
data_object_writes或data_object_write_bytes配额达到上限,请将写入操作分散到多个集合或区域。 - 预热。如果您知道发布会超出当前限额,请至少提前几个工作日申请提高限额。
配额增加请求 (QIR)
若要申请增加配额,请执行以下操作:
- 在 Google Cloud 控制台中打开 IAM 和管理 > 配额页面。
- 选择要增加的行数。
- 点击修改配额,输入新值和简要的业务理由,然后提交。包含:
- 指标名称(例如,
vectorsearch.googleapis.com/search_requests)。 - 区域和(对于数据平面)集合 ID。
- 您的目标吞吐量以及工作负载的简短说明(稳定与突发、预期峰值 QPS、预期数据集大小等)。
- 指标名称(例如,
该请求已转送给代理检索团队进行审核。大多数不超过默认值 2 倍的增加都会自动获得批准。如果申请增加的配额较多,可能需要进行额外的审核。