Esta página proporciona recomendaciones adicionales para mejorar el rendimiento de tus consultas de MongoDB Vector Search.
Asegúrate de tener suficiente memoria
Mundos pequeños navegables jerárquicos funciona de manera eficiente cuando los datos vectoriales se mantienen en la memoria. Debes asegurarte de que los nodos de datos tengan suficiente RAM para alojar los datos del vector y los índices. Se recomienda implementar Nodos de búsqueda para el aislamiento de carga de trabajo por separado sin aislamiento de datos, lo que permite un uso más eficiente de la memoria en casos de uso de búsqueda vectorial.
Modelo de incrustación | Dimensión vectorial | Requisitos de espacio |
|---|---|---|
Voyage AI | 2048 | 8kb (for float)2.14kb (for int8)0.334kb (for int1) |
OpenAI | 1536 | 6kb |
Google | 768 | 3kb |
Cohere | 1024 | 4kb (for float)1.07kb (for int8)0.167kb (for int1) |
BinData vectores cuantificados. Para obtener más información, consulta Ingesta de vectores cuantizados.
La cantidad de recursos de CPU, memoria y disco que consume MongoDB Vector Search depende de varios factores, incluido el tamaño del índice y los criterios de query. Es importante supervisar el entorno para entender el estado y el rendimiento de la búsqueda vectorial y para confirmar la capacidad adecuada de la infraestructura e identificar cualquier anomalía.
Utiliza las siguientes métricas para observar y mejorar el rendimiento de tus índices y consultas de MongoDB Vector Search:
Buscar en la memoria del sistema
Supervisa la cantidad total de RAM utilizada por los índices de MongoDB Vector Search. La RAM adecuada es fundamental para el rendimiento de MongoDB Vector Search, porque las queries en el disco son mucho menos eficientes. Asegurarse de que todo el índice pueda caber en la memoria.
Asegúrese de que disponible System Memory siempre es superior a lo utilizado System Memory. Si el índice no se consulta frecuentemente, es posible que no todo el índice esté en memoria. Por lo tanto, utilice la métrica System Memory junto con la métrica Index Size para optimizar el provisionamineto.
Si el tamaño del índice de vectores supera 3 GB, recomendamos la cuantificación de vectores, que almacena solo el 4% del índice en memoria en lugar de todo el índice.
Tamaño del índice de búsqueda
Supervisa el tamaño total de todos los índices en disco en bytes. Esto es necesario para asegurarse de haber dimensionado correctamente los requisitos de RAM.
Verifica la Index Size métrica de disc para ver cuál sería el tamaño completo 100del índice si el % del vector se almacena en la memoria y asegúrate de que sea menor que la memoria del sistema disponible.
Fallos de página de búsqueda
Se debe supervisar la tasa promedio de fallas de página en un proceso por segundo durante un período de muestra seleccionado. La métrica Page Faults indica con qué frecuencia la consulta de búsqueda va al disco, lo que indica que el índice completo no cabe en la memoria.
Esta métrica debe permanecer lo más cerca de cero posible. Si ves fallos de página constantemente, considera escalar el nivel de clúster hacia arriba para provisionar la RAM adecuada.
Preparar la caché del sistema de archivos
Cuando realices una búsqueda vectorial sin utilizar nodos de búsqueda dedicados, tus queries inicialmente realizarán búsquedas aleatorias en disco a medida que recorras el grafo Hierarchical Navigable Small Worlds y los valores vectoriales se leerán en la memoria. Al usar Search Nodos, este calentamiento de caché suele ocurrir solo en el evento de una reconstrucción del índice, generalmente durante los períodos de mantenimiento programados.
Supervise los Cuellos de Botella de la CPU
Las incrustaciones vectoriales consumen recursos computacionales durante la indexación. Las consultas de ENN en grandes conjuntos de datos consumen recursos de CPU. Como resultado, la indexación y la consulta al mismo tiempo pueden causar cuellos de botella en los recursos. Para evitar cuellos de botella en la CPU, evite la indexación de vectores cuando se estén ejecutando queries. Al realizar una sincronización inicial, asegúrate de que el uso de CPU del Search Node se acerque a 0%, lo que indica que los segmentos se han fusionado y guardado en el disco, antes de emitir consultas de prueba.
Supervisar la métrica Search Normalized Process CPU durante las operaciones de indexación, ya que una indexación intensiva mostrará un uso elevado de CPU. Esta métrica muestra el uso de la CPU como un porcentaje normalizado en relación con la cantidad de núcleos de CPU disponibles, lo que permite evaluar la saturación de recursos en relación con la capacidad del clúster. Después de indexar las incrustaciones de vectores, espera a que el uso de la CPU regrese cerca de 0% a medida que concluye la fusión de segmentos y el vaciado.