Kontingente für den Abruf von KI-Agenten

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:

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.create
collections.update
collections.delete
collection_read_requests collections.get
collection_list_requests collections.list
index_management_requests indexes.create
indexes.update
indexes.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.get
operations.list
operations.cancel
operations.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.create
dataObjects.update
dataObjects.delete\
Jedes Datenobjekt, das in
batchCreate
batchUpdate
batchDelete 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 allen
create-, update-, delete-, batchCreate-, batchUpdate- und
batchDelete-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ür data_object_writes und trägt mit seiner serialisierten Größe in Byte zu data_object_write_bytes bei.

  • batchSearch dataObjects: wird als eine Anfrage für batch_search_requests gezä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.

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:

  1. Öffnen Sie in der Google Cloud Console die Seite IAM und Verwaltung > Kontingente.
  2. Filtern Sie nach dem Dienst Vector Search API.
  3. 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.

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- oder data_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:

  1. Öffnen Sie in der Google Cloud Console die Seite IAM und Verwaltung > Kontingente.
  2. Wählen Sie die Zeile(n) aus, die Sie vergrößern möchten.
  3. 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.).

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