Google Cloud nutzt Kontingente, um für Fairness zu sorgen und Spitzen bei der Ressourcennutzung und ‑verfügbarkeit zu reduzieren. Ein Kontingent schränkt ein, wie viel von einerGoogle Cloud Ressource Ihr Google Cloud Projekt nutzen kann. Kontingente gelten für eine Reihe von Ressourcentypen, einschließlich Hardware, Software und Netzwerkkomponenten. Mit Kontingenten können Sie beispielsweise die Anzahl der API-Aufrufe an einen Dienst, die Anzahl der von Ihrem Projekt nebenläufig verwendeten Load Balancer oder die Anzahl der Projekte begrenzen, die Sie erstellen können. Kontingente sollen eine Überlastung von Diensten verhindern und dadurch die Community derGoogle Cloud Nutzer schützen. Sie helfen Ihnen auch bei der Verwaltung Ihrer eigenen Google Cloud Ressourcen.
Das Cloud-Kontingentsystem tut Folgendes:
- Es überwacht Ihren Verbrauch von Google Cloud Produkten und Diensten.
- Es schränkt Ihren Verbrauch dieser Ressourcen ein.
- Es bietet eine Möglichkeit, Änderungen am Kontingentwert zu beantragen und Kontingentanpassungen zu automatisieren.
Wenn Sie versuchen, mehr von einer Ressource zu verbrauchen, als das Kontingent zulässt, blockiert das System in den meisten Fällen den Zugriff auf die Ressource. Die Aufgabe, die Sie auszuführen versuchen, schlägt dann fehl.
Kontingente gelten in der Regel auf Google Cloud Projektebene. Die Nutzung einer Ressource in einem Projekt hat keinen Einfluss auf das verfügbare Kontingent in einem anderen Projekt. Innerhalb eines Google Cloud Projekts werden die Kontingente für alle Anwendungen und IP-Adressen gemeinsam genutzt.
Weitere Informationen finden Sie unter Cloud-Kontingente – Übersicht.
In Agent Retrieval (früher Vektorsuche 2.0) werden Kontingente erzwungen, um den Dienst zu schützen, eine faire Aufteilung der Kapazität zwischen Projekten zu gewährleisten und Ihnen eine vorhersehbarere Leistung und Kosten zu bieten. Kontingente werden unabhängig nach Region erfasst. Beispiel: Die Nutzung in us-central hat keine Auswirkungen auf Ihr Kontingent in europe-west4.
Messwerte
Allen Messwertnamen wird das Präfix vectorsearch.googleapis.com/ vorangestellt.
Ratenkontingente (Anfragen/Min. und Byte/Min.)
Ratenkontingente werden pro Minute ausgewertet und gelten pro Projekt und pro Region (oder multiregional) sowie optional pro Collection.
Durch jeden akzeptierten API-Aufruf wird der Zähler um eine Anfrage (oder N Byte bei Byte-Kontingenten) erhöht. Zähler werden pro Kalenderminute berechnet und verwenden eine gleitende Fensterbewertung (es gibt keinen harten Reset um :00).
Sie können das Limit kontinuierlich ausreizen, ohne dass ein „Nachfülleffekt“ auftritt.
Wenn ein Zähler sein Limit überschreitet, geben zusätzliche Anfragen RESOURCE_EXHAUSTED (HTTP 429) mit reason="RATE_LIMIT_EXCEEDED" und dem genauen Messwertnamen im Feld quota_metric zurück.
Ratenkontingente für die Steuerungsebene
Die folgenden Kontingente gelten für den Ressourcenlebenszyklus sowie für Lese- und Auflistungsvorgänge für Sammlungen und Indexe für ein bestimmtes Projekt und eine bestimmte Region.
Umfang: pro Projekt, pro Region
Einheit: 1/min
Limits: Anfragen pro Minute.
| Messwert | Anzahl |
|---|---|
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 |
Anfragen für Vorgänge mit langer Ausführungszeit (LRO)
Die folgenden Kontingente gelten für lang andauernde Lese-, Auflistungs-, Abbruch- und Löschvorgänge für ein bestimmtes Projekt und eine bestimmte Region.
Umfang: pro Projekt, pro Region
Einheit: 1/min
Limits: Anfragen pro Minute.
| Messwert | Anzahl |
|---|---|
lro_requests
|
operations.getoperations.listoperations.canceloperations.delete |
Ratenkontingente für die Datenebene
Die folgenden Kontingente gelten für Datenobjekte, Abfragen und Suchanfragen für ein bestimmtes Projekt, eine bestimmte Region und eine bestimmte Sammlung.
Hinweis: Kontingente für Suchanfragen (search_requests) werden für die Textsuche und die semantische Suche verbraucht.
Umfang: pro Projekt, pro Region, pro Sammlung
Einheit: 1/min
Limits: Anfragen pro Minute und Sammlung
| Messwert | Anzahl |
|---|---|
data_object_writes
|
dataObjects.createdataObjects.updatedataObjects.delete\ Jedes Datenobjekt, das in batchCreatebatchUpdatebatchDelete enthalten ist |
data_object_reads |
dataObjects.get |
query_requests |
dataObjects.query (Filterabfragen nur für Metadaten) |
search_requests |
dataObjects.search beim Ausführen eines dichten oder dünnbesetzten ANN. |
knn_search_requests |
dataObjects.search beim Ausführen einer umfassenden KNN-Suche. |
batch_search_requests |
dataObjects.batchSearch (eine Anfrage, unabhängig von Unterabfragen) |
Kontingente für den Durchsatz der Datenebene
Die folgenden Kontingente gelten für die pro Minute geschriebenen Byte für ein bestimmtes Projekt, eine bestimmte Region und eine bestimmte Sammlung.
Umfang: pro Projekt, pro Region, pro Sammlung
Einheit: 1/min
Limits: Anfragen pro Minute und Sammlung
| Messwert | Anzahl |
|---|---|
data_object_write_bytes
|
Die Summe der serialisierten Daten und Vektorbytes, die von allencreate-, update-, delete-, batchCreate-, batchUpdate- undbatchDelete-Aufrufen für Sammlungen, Datenobjekte und Indexe geschrieben wurden. |
Batchvorgänge
batchCreate, batchUpdate, batchDelete dataObjects: Jedes einzelne Datenobjekt in der Anfrage zählt als ein Schreibvorgang fürdata_object_writesund trägt mit seiner serialisierten Größe in Byte zudata_object_write_bytesbei.batchSearch dataObjects: wird als eine Anfrage fürbatch_search_requestsgezählt, unabhängig davon, wie viele Untersuchen gebündelt sind. Bei der Batchsuche wird auch das Kontingent für untergeordnete Suchen berücksichtigt.
Zuteilungskontingente (aktuelle Anzahl)
Zuteilungskontingente sind eine aktuelle Anzahl.
Zähler sind eine Live-Zählung von Ressourcen oder laufenden Vorgängen, die zum Projekt gehören.
Die Anzahl erhöht sich beim Erstellen von Ressourcen oder beim Starten von Vorgängen und verringert sich beim Löschen oder beim Abschluss von Vorgängen.
Wenn das Limit erreicht ist, wird beim nächsten Erstellungsaufruf RESOURCE_EXHAUSTED zurückgegeben.
Löschen Sie eine vorhandene Ressource oder warten Sie, bis ein LRO abgeschlossen ist, um Kontingent freizugeben.
Zuteilungskontingente für die Steuerungsebene
Die folgenden Kontingente gelten für die Anzahl der Ressourcen oder laufenden Vorgänge, die ein Projekt für ein bestimmtes Projekt und eine bestimmte Region enthalten darf:
- Sammlungen
- Indexe
- Gleichzeitige Erstellungs-, Import- und Exportvorgänge für Sammlungen, Datenobjekte und Indexe
Umfang: pro Projekt, pro Region
Einheit: 1
Limits: absolute Zahlen (genaue Kontingente)
| Messwert | Anzahl |
|---|---|
collections |
Die Anzahl der Sammlungen im Projekt bzw. in der Region. |
indexes |
Die Anzahl der Indexe (Summe aller Sammlungen) im Projekt bzw. in der Region. |
concurrent_index_operations |
Die laufenden Index-LROs (Erstellen/Aktualisieren/Löschen). |
concurrent_collection_operations |
Die laufenden LROs für die Sammlung (Erstellen/Aktualisieren/Löschen). |
concurrent_data_object_imports |
Die laufenden dataObjects.import-LROs. |
concurrent_data_object_exports |
Die laufenden dataObjects.export-LROs. |
Automatische Einbettung
Für die automatische Einbettung wird die Gemini API in Vertex AI (aiplatform.googleapis.com) verwendet. Jede API-Anfrage wird auf search_requests oder data_object_writes und der Einbettungsaufruf auf Vorhersagekontingente angerechnet. Achten Sie darauf, dass beide APIs genügend Spielraum haben.
Anwendungsbeispiele
In den folgenden Abschnitten wird beschrieben, wie sich verschiedene Nutzungsszenarien auf Kontingente auswirken.
Kontinuierliche Schreibarbeitslast
Sie nehmen Dokumente (Daten plus ein dichter Vektor mit 768 Dimensionen, etwa 4 KB) in eine einzelne Sammlung in us-central1 auf. Es gelten zwei Kontingente gleichzeitig:
data_object_writes (requests per minute, per collection)
data_object_write_bytes (bytes per minute, per collection)
Sie sind durch die Obergrenze eingeschränkt, die Sie zuerst erreichen. Bei kleinen Objekten ist in der Regel das Kontingent für die Anfragerate bindend. Bei großen Objekten ist das Byte-Kontingent bindend.
Prüfen Sie beide Messwerte in der Google Cloud Console, um zu sehen, welcher am nächsten am Limit ist.
Arbeitslast mit vielen Suchvorgängen
Eine Bereitstellungsarbeitslast, die ANN-Abfragen an eine einzelne Sammlung sendet, verbraucht search_requests. Wenn die Spitzenabfragen pro Sekunde (QPS) das Limit pro Sammlung erreichen, können Sie entweder eine Erhöhung beantragen oder den Traffic auf mehrere Sammlungen in derselben Region verteilen.
Viele kleine Sammlungen
Wenn Sie mehr Sammlungen erstellen möchten, als das collections-Limit Ihres Projekts zulässt, fordern Sie eine Erhöhung an, bevor Sie mit dem Erstellen beginnen. Andernfalls schlägt der Erstellungsaufruf, der das Limit überschreitet, mit RESOURCE_EXHAUSTED fehl.
Batchsuche
Eine batchSearch mit 10 Untersuchen verbraucht genau eine
batch_search_requests, aber jede Untersuche wird nur auf der Ebene des äußeren Batches auf den jeweiligen Messwert pro Untersuche angerechnet.
Planen Sie das Batch-Fan-out entsprechend.
Kontingente aufrufen
So rufen Sie Ihre Kontingente auf:
- Öffnen Sie in der Google Cloud Console die Seite IAM und Verwaltung > Kontingente.
- Filtern Sie nach dem Dienst
Vector Search API. - Verwenden Sie die Spalte Dimensionen (z.B. Standort), um nach Region und nach Sammlung für Kontingente der Datenebene zu filtern.
Das aktuelle effektive Limit für jeden Messwert wird in der Google Cloud Konsole auf der Seite „Kontingente“ neben dem Messwertnamen angezeigt, gefiltert nach Region und bei Kontingenten für die Datenebene nach Sammlung.
Kontingentbenachrichtigungen einrichten
Wir empfehlen, für die Kontingente, von denen Ihre Arbeitslast abhängt, eine Benachrichtigung bei 80 % Auslastung einzurichten. Weitere Informationen finden Sie unter Kontingentbenachrichtigungen einrichten und Kontingentmesswerte in Benachrichtigungsrichtlinien verwenden.
Fehler
Eine Anfrage, die abgelehnt wird, weil sie ein Kontingent überschritten hat, wird nicht auf das Kontingent selbst angerechnet.
Anfragen, die aus anderen Gründen fehlschlagen (INVALID_ARGUMENT, NOT_FOUND usw.), werden auf das Ratenkontingent angerechnet, da der Dienst sie trotzdem auswerten muss.
vector_schema Validierungsfehler werden gezählt. Sie werden auf der API-Ebene abgelehnt, nachdem die Prüfung des Ratenkontingents durchgeführt wurde.
Kontingente überschreiten
Wenn eine Anfrage gedrosselt wird, gibt die API Folgendes zurück:
gRPC: RESOURCE_EXHAUSTED (8)
HTTP: 429 Too Many Requests
Die Fehlermeldung enthält den genauen Messwert, der überschritten wurde.
Beispiel:
Quota exceeded for quota metric 'vectorsearch.googleapis.com/search_requests'
and limit 'SearchRequestsPerMinutePerProjectPerRegionPerCollection' of service
'vectorsearch.googleapis.com' for consumer 'project_number:123456789012'.
In diesem Fall können Sie eine Kontingenterhöhung beantragen.
Empfohlenes Clientverhalten
Kunden sollten Folgendes tun:
- Wiederholen Sie den Vorgang mit exponentiellem Backoff und Jitter bei vorübergehenden Fehlern aufgrund von Ratenbegrenzungen. Beginnen Sie mit etwa 1 Sekunde und erhöhen Sie die Zeit auf bis zu etwa 32 Sekunden.
- Wiederholen Sie keine Fehler, die durch Zuteilungskontingente verursacht wurden (z. B.
"too many collections"). Löschen Sie stattdessen eine Ressource oder beantragen Sie eine Erhöhung. - Verteilen Sie Schreibvorgänge auf Sammlungen oder Regionen, wenn eine einzelne Sammlung ihre
data_object_writes- oderdata_object_write_bytes-Kontingente überlastet. - Vorwärmen. Wenn Sie wissen, dass eine Produkteinführung Ihre aktuellen Limits überschreiten wird, fordern Sie mindestens einige Arbeitstage im Voraus eine Erhöhung an.
Anfrage zur Kontingenterhöhung
So fordern Sie eine Kontingenterhöhung an:
- Öffnen Sie in der Google Cloud Console die Seite IAM und Verwaltung > Kontingente.
- Wählen Sie die Zeile(n) aus, die Sie vergrößern möchten.
- Klicken Sie auf Kontingente bearbeiten, geben Sie den neuen Wert und eine kurze geschäftliche Begründung ein und senden Sie die Anfrage ab. Wichtige Angaben:
- Der Messwertname (z. B.
vectorsearch.googleapis.com/search_requests). - Die Region und (für die Datenebene) die Sammlungs-ID.
- Ihren Zieldurchsatz und eine kurze Beschreibung der Arbeitslast (gleichmäßig oder unregelmäßig, erwartete Spitzen-QPS, erwartete Dataset-Größe usw.).
- Der Messwertname (z. B.
Die Anfrage wird zur Überprüfung an das Agent Retrieval-Team weitergeleitet. Die meisten Erhöhungen bis zum Zweifachen des Standardwerts werden automatisch genehmigt. Größere Erhöhungen erfordern möglicherweise eine zusätzliche Überprüfung.
Weitere Informationen
- Sammlungen
- Datenobjekte
- Indexe
- Dokumentation zu Cloud-Kontingenten
- Kontingentbenachrichtigungen und ‑monitoring einrichten
- Kontingentmesswerte grafisch darstellen lassen und überwachen