Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Planificación y dimensionamiento de recursos de búsqueda y búsqueda vectorial

Esta página describe cómo dimensionar los pods mongot que dan servicio a MongoDB Search y Vector Search en su clúster de Kubernetes. Úsela para elegir los valores iniciales de spec.clusters[].resourceRequirements, spec.clusters[].jvmFlags y spec.clusters[].persistence en el recurso MongoDBSearch, y para planificar la capacidad del volumen persistente para el crecimiento del índice.

Antes de dimensionar mongot, revise el modelo de despliegue y la topología que planea ejecutar:

Para consultar el esquema completo de cada configuración a la que se hace referencia en esta página, consulte la sección "Configuración de búsqueda de MongoDB y de búsqueda vectorial".

La relación entre la CPU y la memoria que asigne depende del perfil de su carga de trabajo de búsqueda.

Clase de carga de trabajo
Relación RAM/CPU
Utilizar cuando

High-CPU

2:1

Realizas búsquedas de texto completo de propósito general donde el rendimiento de las consultas requiere un uso intensivo de la CPU.

Low-CPU

8:1

Usted ejecuta cargas de trabajo de búsqueda vectorial con volúmenes de datos más bajos, donde la memoria es más importante que la CPU bruta.

Para la mayoría de los casos de uso general, una configuración de CPU alta de tamaño pequeño o mediano es un punto de partida equilibrado.

Dimensiona tus pods mongot según el volumen de datos vectoriales esperado (CPU baja) o según las consultas por segundo (CPU alta).

Tamaño
Bajo consumo de CPU (búsqueda vectorial)
Alto consumo de CPU (texto completo)

Pequeño

Hasta 10 GB de vectores

20 a 40 QPS, indexación ligera

Intermedio

10 GB a 50 GB de vectores

80 a 160 QPS

Grande

50 GB de vectores o más

320 a 480 QPS, indexación pesada

Por ejemplo, si espera manejar 100 consultas por segundo para una aplicación de búsqueda de texto completo, comience con una configuración de CPU media-alta.

Configure la CPU y la memoria para los pods mongot en spec.clusters[].resourceRequirements. El campo requests reserva capacidad en el nodo; el campo limits limita la cantidad que el pod puede consumir.

spec:
clusters:
- resourceRequirements:
requests:
cpu: "2"
memory: 4Gi
limits:
cpu: "3"
memory: 5Gi

Si omite spec.clusters[].resourceRequirements, el operador de Kubernetes utiliza los siguientes valores predeterminados:

  • requests.cpu: 2

  • requests.memory: 4Gi

  • No limits: el pod puede consumir todos los recursos disponibles del nodo.

Establezca limits para que coincida con su carga de trabajo. Un pod sin límites puede saturar el nodo y afectar a otras cargas de trabajo.

Cuando no se especifica -Xms o -Xmx en spec.clusters[].jvmFlags, el operador de Kubernetes calcula automáticamente el montón de JVM estableciendo ambos indicadores a la mitad de spec.clusters[].resourceRequirements.requests.memory.

Para sobrescribir explícitamente el montón, establezca -Xms y -Xmx en spec.clusters[].jvmFlags. El operador de Kubernetes no modifica ninguna de las banderas que proporcione y las agrega después de las banderas calculadas por el operador.

spec:
clusters:
- jvmFlags:
- -Xms2g
- -Xmx2g

Cada pod mongot tiene su propio volumen persistente que almacena los índices de búsqueda y de vector. Planifique el volumen para que contenga el índice más espacio adicional para reconstrucciones.

El tamaño de una colección y el tamaño del índice de búsqueda resultante no siempre están correlacionados. El tamaño del índice depende de los campos que se asignen y de las funciones (como el autocompletado) que se habiliten en el índice. Para estimar el tamaño del índice para su carga de trabajo:

1

Inserta 1 entre y 2 GB de datos, o crea una pequeña colección $out con.

2

Cree el índice de búsqueda con las asignaciones de campos que planea utilizar en producción.

3

Compara el tamaño del índice con el tamaño de la colección. Extrapola a partir de esta proporción para estimar el tamaño del índice a escala de producción. Por ejemplo, una colección de 1 GB que produce un índice de 250 MB (una proporción de 0.25:1) implica que una colección de 12 GB produce aproximadamente un índice de 3 GB.

Asigne el doble del espacio en disco que requiere su índice. El espacio adicional permite mongot que reconstruya los índices cuando sea necesario. mongot se convierte en modo de solo lectura cuando el uso del disco alcanza el 90%.

Establezca el tamaño del volumen en spec.clusters[].persistence.single.storage utilizando sufijos de cantidad binaria:

spec:
clusters:
- persistence:
single:
storage: 60Gi
storageClass: local-nvme

Si omite spec.clusters[].persistence, el operador de Kubernetes aprovisiona un volumen predeterminado de 16 GB. Para un índice de 30 GB, establezca spec.clusters[].persistence.single.storage en 60Gi para dejar espacio para la reconstrucción del índice.

Consulte el StorageClass para el volumen en spec.clusters[].persistence.single.storageClass. Elija una clase que cumpla con las siguientes directrices:

  • Tipo de disco: Utilice almacenamiento SSD de propósito general. Tanto las IOPS de lectura como las de escritura son importantes para el mongot rendimiento. La replicación implica escrituras en disco para nuevos segmentos de índice y lecturas en disco cuando mongot fusiona segmentos antiguos en otros más grandes.

  • Umbral de solo lectura: Cuando un volumen alcanza el 90% de uso, mongot entra en modo de solo lectura y detiene las operaciones de escritura. Para reanudar las escrituras, elimine los datos del índice para que el uso sea inferior al 85%.

Tras la implementación, supervise los siguientes umbrales para confirmar que el dimensionamiento inicial es adecuado y para saber cuándo aumentar la escala.

Resource
Umbral
Acción

CPU

Uso sostenido superior al 80%

Aumentar la CPU en spec.clusters[].resourceRequirements.requests y limits.

Memoria

mongot_system_process_majorPageFaults_operations sostenido por encima de 1000 por segundo

Aumentar la memoria en spec.clusters[].resourceRequirements.requests y el montón de la JVM en spec.clusters[].jvmFlags.

Disk

Uso superior al 90%

Reduzca el tamaño del índice para que el uso quede por debajo del umbral. mongot se convierte en solo lectura al alcanzar este umbral.