Chunk-Cache konfigurieren
Der Chunk-Cache-Mechanismus ermöglicht es Milvus, Daten in den Cache auf der lokalen Festplatte der Abfrageknoten zu laden, bevor sie benötigt werden. Dieser Mechanismus verbessert die Leistung des Vektorabrufs erheblich, da die Zeit, die zum Laden der Daten von der Festplatte in den Speicher benötigt wird, reduziert wird.
Hintergrund
Vor der Durchführung von Abfragen zum Abrufen von Vektoren muss Milvus die Daten aus dem Objektspeicher in den Speichercache auf der lokalen Festplatte der Abfrageknoten laden. Dies ist ein zeitaufwändiger Prozess. Bevor alle Daten geladen sind, kann Milvus auf einige Vektorabfragen mit einer Verzögerung reagieren.
Um die Abfrageleistung zu verbessern, bietet Milvus einen Chunk-Cache-Mechanismus, um Daten aus dem Objektspeicher in den Cache auf der lokalen Festplatte zu laden, bevor sie benötigt werden. Wenn eine Abfrageanforderung eingeht, prüft der Segcore zunächst, ob sich die Daten im Cache und nicht im Objektspeicher befinden. Wenn sich die Daten im Cache befinden, kann Segcore sie schnell aus dem Cache abrufen und das Ergebnis an den Client zurückgeben.
Chunk-Cache konfigurieren
Dieser Leitfaden enthält Anweisungen zur Konfiguration des Chunk-Cache-Mechanismus für eine Milvus-Instanz. Die Konfiguration hängt von der Art und Weise ab, wie Sie die Milvus-Instanz installieren.
Für Milvus-Instanzen, die mit Helm Charts installiert wurden
Fügen Sie die Konfiguration in die Datei
values.yaml
unter dem Abschnittconfig
ein. Einzelheiten finden Sie unter Konfigurieren von Milvus mit Helm Charts.Für Milvus-Instanzen, die mit Docker Compose installiert wurden
Fügen Sie die Konfiguration in die Datei
milvus.yaml
ein, die Sie zum Starten der Milvus-Instanz verwendet haben. Einzelheiten finden Sie unter Konfigurieren von Milvus mit Docker Compose.Für Milvus-Instanzen, die mit Operator installiert wurden
Fügen Sie die Konfiguration in den Abschnitt
spec.components
der benutzerdefinierten RessourceMilvus
ein. Weitere Informationen finden Sie unter Konfigurieren von Milvus mit Operator.
Konfigurationsoptionen
queryNode:
cache:
warmup: async
Der Parameter warmup
bestimmt, ob Milvus Daten aus dem Objektspeicher in den Cache auf der lokalen Festplatte der Abfrageknoten lädt, bevor sie benötigt werden. Die Voreinstellung für diesen Parameter ist disable
. Mögliche Optionen sind wie folgt:
async
: Milvus lädt die Daten asynchron im Hintergrund vor, was sich nicht auf die Zeit auswirkt, die zum Laden einer Sammlung benötigt wird. Allerdings kann es beim Abrufen von Vektoren zu einer kurzen Verzögerung kommen, nachdem der Ladevorgang abgeschlossen ist. Dies ist die Standardoption.sync
: Milvus lädt die Daten synchron vor, was sich auf die Ladezeit einer Sammlung auswirken kann. Benutzer können jedoch Abfragen sofort nach Abschluss des Ladevorgangs ohne Verzögerung durchführen.disable
: Milvus lädt die Daten nicht vorab in den Speicher-Cache.
Beachten Sie, dass die Chunk-Cache-Einstellungen auch dann gelten, wenn neue Daten in Sammlungen eingefügt oder die Sammlungsindizes neu erstellt werden.
FAQ
Wie kann ich feststellen, ob der Chunk-Cache-Mechanismus korrekt funktioniert?
Es wird empfohlen, die Latenzzeit einer Such- oder Abfrageanfrage nach dem Laden einer Sammlung zu überprüfen. Wenn die Latenzzeit deutlich höher ist als erwartet (z. B. mehrere Sekunden), kann dies ein Hinweis darauf sein, dass der Chunk-Cache-Mechanismus noch funktioniert.
Wenn die Abfragelatenz über einen längeren Zeitraum hoch bleibt. Sie können den Durchsatz des Objektspeichers überprüfen, um sicherzustellen, dass der Chunk-Cache noch funktioniert. In normalen Fällen erzeugt der funktionierende Chunk-Cache einen hohen Durchsatz auf dem Objektspeicher. Alternativ können Sie den Chunk-Cache auch einfach im Modus
sync
ausprobieren.