Cloud de Confiance by S3NS 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 einerCloud de Confiance Ressource Ihr Cloud de Confiance 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 derCloud de Confiance Nutzer schützen. Sie helfen Ihnen auch bei der Verwaltung Ihrer eigenen Cloud de Confiance Ressourcen.
Das Cloud-Kontingentsystem tut Folgendes:
- Es überwacht Ihren Verbrauch von Cloud de Confiance 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 Cloud de Confiance Projektebene. Die Nutzung einer Ressource in einem Projekt hat keinen Einfluss auf das verfügbare Kontingent in einem anderen Projekt. Innerhalb eines Cloud de Confiance Projekts werden die Kontingente für alle Anwendungen und IP-Adressen gemeinsam genutzt.
Weitere Informationen finden Sie unter Cloud-Kontingente – Übersicht.
Bei der Agent-Abruffunktion (früher Vector Search 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 besser vorhersagbare Leistung und Kosten zu ermöglichen. Kontingente werden unabhängig nach Region erfasst. Die Nutzung in us-central hat beispielsweise keine Auswirkungen auf Ihr Kontingent in europe-west4.
Messwerte
Allen Messwertnamen wird vectorsearch.googleapis.com/ vorangestellt.
Ratenkontingente (Anfragen/Min. und Byte/Min.)
Bei Kontingenten für die Datenrate werden Kontingente pro Minute ausgewertet und gelten pro Projekt und pro Region (oder Multi-Region) und optional pro Sammlung.
Bei jedem akzeptierten API-Aufruf wird der Zähler um eine Anfrage erhöht (oder um N Byte bei Byte-Kontingenten). Zähler werden pro Kalenderminute berechnet und verwenden eine gleitende Fensterbewertung (es gibt keine Zurücksetzung auf die Werkseinstellungen um :00).
Sie können das Limit kontinuierlich ausreizen, ohne dass es zu einem „Refill“-Effekt kommt.
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 der Steuerungsebene
Die folgenden Kontingente gelten für den Ressourcenlebenszyklus sowie für Lese- und Listenoperationen für Sammlungen und Indexe für ein bestimmtes Projekt und eine bestimmte Region.
Bereich: pro Projekt und Region
Einheit: 1/min
Beschränkungen: 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
Für ein bestimmtes Projekt und eine bestimmte Region gelten die folgenden Kontingente für lange laufende Lese-, Listen-, Abbruch- und Löschvorgänge.
Bereich: pro Projekt und Region
Einheit: 1/min
Beschränkungen: Anfragen pro Minute.
| Messwert | Anzahl |
|---|---|
lro_requests
|
operations.getoperations.listoperations.canceloperations.delete |
Ratenkontingente für die Datenebene
Die folgenden Kontingente gelten für Datenobjekte, Abfrage- und Suchtraffic 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 verwendet.
Bereich: 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 Data Object, 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 spärlichen ANN. |
knn_search_requests |
dataObjects.search, wenn Sie eine vollständige KNN-Suche durchführen. |
batch_search_requests |
dataObjects.batchSearch (eine Anfrage unabhängig von untergeordneten Suchvorgängen) |
Kontingente für den Durchsatz auf Datenebene
Die folgenden Kontingente gelten für die pro Minute geschriebenen Byte für ein bestimmtes Projekt, eine bestimmte Region und eine bestimmte Sammlung.
Bereich: 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 Vektor-Bytes, die von allen -Aufrufen für Sammlungen, Datenobjekte und Indexe geschrieben wurden: create, update, delete, batchCreate, batchUpdate und batchDelete. |
Batchvorgänge
batchCreate, batchUpdate, batchDelete dataObjects: Jedes einzelne Datenobjekt in der Anfrage wird als ein Schreibvorgang fürdata_object_writesgezählt und trägt seine serialisierte Größe in Byte zudata_object_write_bytesbei.batchSearch dataObjects: wird als eine Anfrage fürbatch_search_requestsgezählt, unabhängig davon, wie viele untergeordnete Suchanfragen gebündelt sind. Bei der Batch-Suche wird auch das Kontingent für untergeordnete Suchanfragen berücksichtigt.
Zuteilungskontingente (aktuelle Anzahl)
Zuteilungskontingente sind eine aktuelle Anzahl.
Zähler sind eine Live-Anzahl von Ressourcen oder laufenden Vorgängen, die dem Projekt gehören.
Die Anzahl wird beim Erstellen von Ressourcen oder beim Starten von Vorgängen erhöht und beim Löschen oder beim Abschluss von Vorgängen verringert.
Wenn das Limit erreicht ist, wird beim nächsten Aufruf von „create“ RESOURCE_EXHAUSTED zurückgegeben.
Löschen Sie eine vorhandene Ressource oder warten Sie, bis ein LRO abgeschlossen ist, um Kontingent freizugeben.
Zuteilungskontingente der Steuerungsebene
Für die Anzahl der Ressourcen oder laufenden Vorgänge, die ein Projekt für ein bestimmtes Projekt und eine bestimmte Region enthalten kann, gelten die folgenden Kontingente:
- Sammlungen
- Indexe
- Gleichzeitige Erstellungs-, Import- und Exportvorgänge für Sammlungen, Datenobjekte und Indexe
Bereich: pro Projekt und Region
Einheit: 1
Limits: absolute Anzahl (genaue Quoten)
| Messwert | Anzahl |
|---|---|
collections |
Die Anzahl der Sammlungen, die im Projekt/in der Region vorhanden sind. |
indexes |
Die Anzahl der Indexe (summiert über alle Sammlungen) im Projekt/in der Region. |
concurrent_index_operations |
Die LROs für den laufenden Index (Erstellen/Aktualisieren/Löschen). |
concurrent_collection_operations |
Die LROs für die laufende Sammlung (Erstellen/Aktualisieren/Löschen). |
concurrent_data_object_imports |
Die LROs, die während der Ausführung von dataObjects.import ausgeführt werden. |
concurrent_data_object_exports |
Die LROs, die während der Ausführung von dataObjects.export ausgeführt werden. |
Automatisches Einbetten
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 angerechnet und der Einbettungsaufruf wird auf die Vorhersagekontingente angerechnet. Achten Sie darauf, dass für beide APIs noch Kontingent verfügbar ist.
Anwendungsbeispiele
In den folgenden Abschnitten wird beschrieben, wie sich verschiedene Nutzungsszenarien auf Kontingente auswirken.
Kontinuierliche Schreibarbeitslast
Sie nehmen Dokumente (Daten plus ein 768-dimensionaler dichter Vektor, 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 das Limit, das Sie zuerst erreichen, eingeschränkt. Bei kleinen Objekten gilt in der Regel das Kontingent für die Anfragerate. Bei großen Objekten gilt das Byte-Kontingent.
Prüfen Sie beide Messwerte in der Cloud de Confiance -Konsole, um zu sehen, welcher dem Limit am nächsten ist.
Arbeitslast mit vielen Suchvorgängen
Eine Serving-Arbeitslast, die ANN-Anfragen an eine einzelne Sammlung sendet, verbraucht search_requests. Wenn Ihre Spitzenabfragen pro Sekunde (QPS) sich dem Limit pro Sammlung nähern, 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, beantragen Sie eine Erhöhung, bevor Sie mit der Erstellung beginnen. Andernfalls schlägt der Erstellungsaufruf, der das Limit überschreitet, mit RESOURCE_EXHAUSTED fehl.
Batchsuche
Ein batchSearch mit 10 Unterabfragen verbraucht genau einen
batch_search_requests. Jede Unterabfrage wird jedoch nur auf der Ebene des äußeren Batches auf den jeweiligen Messwert pro Unterabfrage angerechnet.
Planen Sie den Batch-Fan-Out entsprechend.
Kontingente aufrufen
So rufen Sie Ihre Kontingente auf:
- Öffnen Sie in der Cloud de Confiance Console die Seite IAM & Verwaltung > Kontingente.
- Filtern Sie nach dem Dienst
Vector Search API. - Verwenden Sie die Spalte Dimensionen (z.B. Standort), um die Kontingente für die Datenebene nach Region und Sammlung zu filtern.
Das aktuelle effektive Limit für jeden Messwert wird in der Cloud de Confiance Console auf der Seite „Kontingente“ neben dem Messwertnamen angezeigt. Es wird nach Region und, bei Kontingenten für die Datenebene, nach Sammlung gefiltert.
Kontingentbenachrichtigungen einrichten
Wir empfehlen, eine Benachrichtigung bei 80% Auslastung für die Kontingente einzurichten, von denen Ihre Arbeitslast abhängt. 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 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 das Ratenkontingent geprüft 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:
- Wiederholen Sie den Vorgang mit exponentiellem Backoff und Jitter bei vorübergehenden Fehlern aufgrund von Ratenbeschränkungen. Beginne mit etwa 1 Sekunde und erhöhe die Zeit auf bis zu 32 Sekunden.
- Fehler ohne Wiederholungsversuch, die durch Zuweisungskontingente verursacht werden (z. B.
"too many collections"). Löschen Sie eine Ressource oder fordern Sie stattdessen eine Erhöhung an. - Schreibvorgänge auf Collections oder Regionen verteilen, wenn für eine einzelne Collection die Kontingente für
data_object_writesoderdata_object_write_bytesüberschritten werden. - Vorab aufwärmen: Wenn Sie wissen, dass ein Launch Ihre aktuellen Limits überschreiten wird, sollten Sie mindestens einige Arbeitstage im Voraus eine Erhöhung beantragen.
Anfrage zur Kontingenterhöhung
So beantragen Sie eine Kontingenterhöhung:
- Öffnen Sie in der Cloud de Confiance Console die Seite IAM & Verwaltung > Kontingente.
- Wählen Sie die Zeilen aus, die Sie erhöhen möchten.
- Klicken Sie auf Kontingente bearbeiten, geben Sie den neuen Wert und eine kurze geschäftliche Begründung ein und senden Sie das Formular ab. Einschließen:
- Der Messwertname (z. B.
vectorsearch.googleapis.com/search_requests). - Die Region und (für die Datenebene) die Sammlungs-ID.
- Ihr Ziel-Durchsatz und eine kurze Beschreibung der Arbeitslast (gleichmäßig oder mit Spitzen, 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 auf das Doppelte des Standardwerts werden automatisch genehmigt. Bei größeren Erhöhungen ist möglicherweise eine zusätzliche Überprüfung erforderlich.