Mehrere RAG-Sammlungen konkurrieren um den Arbeitsspeicher, weil jede Sammlung eigene Vektoren, Suchgraphen, Metadatenindizes, Caches und aktive Arbeitssätze verwaltet.
Ein Home-Server kann Familiendokumente, technische Handbücher, Fotometadaten, Arbeitsnotizen und Smart-Home-Verläufe aus Datenschutzgründen oder für eine übersichtlichere Suche in verschiedene RAG-Sammlungen aufteilen. Die Quelldateien passen möglicherweise problemlos auf die Festplatte, während die Suchschicht deutlich mehr Speicher verbraucht als erwartet. Jede Sammlung kann einen Index für die ungefähre Suche nach nächsten Nachbarn, Payload-Filter, Segmentmetadaten, kürzlich aufgerufene Seiten und Abfragepuffer laden; Einbettungs- und Reranking-Dienste fügen neben diesen Sammlungen eigene residente Modelle hinzu.
Jede Sammlung erzeugt eine separate Suchstruktur
Eine Vektorsammlung ist nicht nur ein Ordner voller Einbettungen. Suchmaschinen verwalten üblicherweise die Vektorwerte sowie einen Nachbarschaftsgraphen oder eine andere Struktur für die ungefähre Suche, mit der sich das Durchsuchen jedes einzelnen Datensatzes vermeiden lässt.
Weaviate nennt Vektoren und HNSW-Graphen als zwei wichtige Speicherverbraucher in einem speicherresidenten Index für die ungefähre Suche nach nächsten Nachbarn.
Das Erstellen von fünf Sammlungen kann daher fünf unabhängig adressierbare Indizes bedeuten, selbst wenn sie dasselbe Einbettungsmodell verwenden und in einem Datenbankprozess laufen. Die Trennung verbessert Richtlinien und Wartung nur dann, wenn ihr Vorteil bei der Suche die vervielfachten Arbeitssätze rechtfertigt.
Dimensionen und Index-Overhead vervielfachen die Ausgangsbasis
Der Speicherbedarf roher Vektoren steigt mit der Anzahl der Vektoren, den Einbettungsdimensionen und der Byte-Anzahl pro Komponente. Der durchsuchbare Index fügt zusätzlich zum Roharray Graphverknüpfungen, Kennungen, Ausrichtung, Metadaten und Overhead des Speicherzuweisers hinzu.
Milvus stellt eine Formel für den Speicherbedarf von Vektorindizes bereit und weist darauf hin, dass eine HNSW-Bereitstellung deutlich mehr Speicher benötigen kann als die nicht indizierten Vektoren allein.
Schätze jede Sammlung separat und addiere anschließend die Werte. Eine Sammlung mit weniger Dokumenten kann dennoch teuer sein, wenn sie hochdimensionale Einbettungen, Komponenten mit voller Präzision oder einen auf hohe Trefferquote optimierten Graphen verwendet.
Graphverknüpfungen tauschen Arbeitsspeicher gegen Trefferquote und Geschwindigkeit
HNSW verknüpft jeden Vektor mit benachbarten Knoten. Mehr Verbindungen können Navigation und Trefferquote verbessern, doch jede gespeicherte Kante verbraucht Speicher und macht die Indexerstellung aufwendiger.
Redis erklärt, wie Graphverknüpfungen über Parameter gesteuert werden, die Indexgröße, Trefferquote und Suchverhalten gegeneinander abwägen.
Verschiedene Sammlungen übernehmen möglicherweise dieselben aggressiven Standardeinstellungen, obwohl nur eine davon sie benötigt. Verwende für kleine Archive oder Sammlungen mit geringer Parallelität ein speichersparendes Profil, statt jeden Index für das anspruchsvollste Suchszenario zu optimieren.
Memory-Mapping verlagert den Druck in den gemeinsamen Seiten-Cache
Das Ablegen von Vektoren oder Graphdaten auf der Festplatte per Memory-Mapping kann die dauerhaft residente Speicherzuweisung des Prozesses reduzieren. Aktive Seiten werden dadurch jedoch nicht kostenlos; das Betriebssystem hält kürzlich aufgerufene Indexblöcke weiterhin im Arbeitsspeicher vor.
Der Speichervergleich von Qdrant zeigt, wie per Memory-Mapping geladene Vektoren den gemessenen RAM-Verbrauch senken, während beim Abruf der Daten über den Speicher ein Kompromiss bei der Latenz entsteht.
Wenn Abfragen zwischen mehreren Sammlungen wechseln, können sich deren häufig verwendete Seiten gegenseitig aus dem Seiten-Cache verdrängen. Derselbe Druck kann Dateisystemdaten verdrängen, die von Foto-Apps, Containern, Datenbanken und Netzwerkfreigaben auf dem Home-Server genutzt werden.
Indizes, die größer als der RAM sind, bezahlen mit mehr Speicher-I/O
Ein Index kann den physischen Arbeitsspeicher überschreiten und trotzdem durchsuchbar bleiben, doch dann muss ein größerer Teil jedes Suchpfads von der SSD gelesen werden. Zufällige Zugriffe und Cache-Fehlzugriffe werden dadurch Teil der Latenz bei der Abfrage.
PlanetScale beschreibt Indizes, die größer als der RAM sind und eine kleinere Navigationsstruktur im Arbeitsspeicher behalten, während mehr Postings oder Vektordaten auf den Speicher ausgelagert werden.
Dies kann ein guter Kompromiss für einen Home-Server sein, wenn Suchvorgänge nur gelegentlich stattfinden und der Index auf einer schnellen SSD liegt. Es ist jedoch keine gute Annahme, wenn mehrere Sammlungen gleichzeitig abgefragt werden oder sich eine langsame Festplatte mit Anwendungsdatenbanken und Medien-Workloads teilen.
Doppelte Speicherung und separate Dienste fügen versteckte Kopien hinzu
Dieselbe Einbettung kann in einem Dokumentenspeicher, einem Vektorindex, einem Anwendungscache sowie einer Sicherungs- oder Staging-Sammlung vorhanden sein. Separate Container können außerdem identische Einbettungs- oder Reranking-Modelle in unterschiedlichen Prozessadressräumen laden.
Memgraphs Diskussion über die Vermeidung doppelter Vektorspeicherung zeigt, warum die Indexarchitektur die Anzahl der im Arbeitsspeicher gehaltenen Kopien eines durchsuchbaren Datensatzes verändert.
Die Anzahl der Sammlungen ist daher nur ein Teil des Budgets. Erfasse doppelte Vektoren, alte Indexversionen, temporäre Sammlungen für den Neuaufbau, Modellprozesse und zwischengespeicherte Ergebnisse, bevor du zu dem Schluss kommst, dass allein die Vektordatenbank dafür verantwortlich ist.
Sammlungen nach Zugriffsrichtlinien und Workload zusammenführen
Verwende separate Sammlungen, wenn sie unterschiedliche Berechtigungen, Einbettungsdimensionen, Aufbewahrungsrichtlinien, Aktualisierungspläne oder Fehlergrenzen benötigen. Thematische Labels allein erfordern nicht immer einen separaten physischen Index.
Eine gemeinsame Sammlung mit Metadaten zu Mandant, Eigentümer, Quelle oder Kategorie kann einen Index gemeinsam nutzen, während Filter die Suche auf den vorgesehenen Bereich beschränken. Teste den Recall mit Filtern vor dem Zusammenführen, da eine übergroße gemischte Sammlung eigene Kosten bei Ranking und Wartung verursachen kann.
Die Erklärung von ZimaSpace, warum eine lokale KI-Laufzeit Speicher reserviert, hilft bei der Interpretation von Monitoringdaten: Vorgehaltene Seiten und Caches können wiederverwendbarer Arbeitszustand statt eines Lecks sein, konkurrieren aber trotzdem mit dem restlichen Server.
Lege ein RAM-Budget fest, bevor du eine weitere Sammlung hinzufügst
Erfasse die Anzahl der Vektoren, Dimensionen, Präzision, den Indextyp, die Graph-Einstellungen, die Größe des Metadatenindex, den residenten Speicher nach dem Aufwärmen sowie den Spitzenverbrauch während der Aufnahme und paralleler Abfragen. Miss den gesamten Stack, nicht nur das Dashboard der Datenbank.
Lass Spielraum für Betriebssystem, Seiten-Cache, Container, Datenbanken, Dateifreigaben und das lokale Sprachmodell. Wenn Swap-Aktivität oder größere Seitenfehler beim Abfragen einer zweiten Sammlung zunehmen, passen die Arbeitssätze nicht mehr bequem gemeinsam in den Speicher.
Reduziere Dimensionen oder Präzision, sofern Recall-Tests dies erlauben, verringere die Graphverknüpfungen, verschiebe selten benötigte Vektoren in per Memory-Mapping geladenen Speicher, begrenze die Parallelität von Abfragen, entlade nicht verwendete Modelle und entferne überholte Sammlungen, bevor du mehr RAM kaufst.
FAQ
Ist eine große RAG-Sammlung immer speichereffizienter?
Sie vermeidet häufig doppelten Index-Overhead, kann jedoch komplexere Filter erfordern und die Qualität der Suche verringern, wenn nicht verwandte Inhalte denselben Ranking-Raum nutzen. Führe Sammlungen erst zusammen, nachdem du Zugriffsgrenzen und Recall getestet hast.
Beseitigt Memory-Mapping die Konkurrenz um den Arbeitsspeicher?
Nein. Es reduziert dauerhaft residente Speicherzuweisungen, doch aktive Indexseiten belegen weiterhin den Seiten-Cache des Betriebssystems und können Seiten verdrängen, die von anderen Sammlungen und Apps genutzt werden.
Warum bleibt der RAM nach Ende einer RAG-Abfrage hoch?
Die Datenbank, der Speicherzuweiser, das Betriebssystem oder die Modelllaufzeit kann wiederverwendbare Seiten und Puffer vorhalten. Prüfe, ob der Speicher bei späteren Abfragen wiederverwendet wird und ob Swap-Aktivität oder Speicherdruck auftritt, bevor du von einem Leck ausgehst.
Tech- & KI-Zentrum
Mehr zum Lesen

Warum werden Smart-Home-Prognosen nach saisonalen Änderungen der Routinen ungenauer?
Saisonale Routinen verändern das Verhältnis zwischen Zeit, Sensoren, Belegung und gewünschten Aktionen, wodurch ein auf früheren Gewohnheiten trainiertes Modell veraltet.

Warum verpasst ein Heim-NVR kurze Ereignisse, wenn die Objektverfolgung aktiviert ist?
Das Tracking benötigt ausreichend Erkennungen, um eine Trajektorie zu starten und zu bestätigen. Daher kann ein kurzzeitig auftauchendes Objekt verschwinden, bevor der NVR ein...

Warum ändern sich KI-Fotobezeichnungen nach einem Modell-Upgrade?
Ein Modell-Upgrade verändert die zur Zuweisung von Labels verwendete Repräsentation und Rangfolge, sodass dasselbe Foto unterschiedliche semantische Grenzen oder Konfidenzschwellen überschreiten kann.

