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 conocer el modelo de implementación de MongoDB Search, consulte la Arquitectura de MongoDB Search.
Para conocer el modelo de implementación de Vector Search, consulte la arquitectura de Vector Search de MongoDB.
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".
Dimensionamiento de los recursos
Seleccione una clase de carga de trabajo
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.
Elige un tamaño inicial
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.
Configurar la CPU y la memoria
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:2requests.memory:4GiNo
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.
Configurar el montón de la JVM
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
Dimensionamiento de volumen persistente
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.
Estimar tamaño del índice
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:
Inserte una muestra representativa.
Inserta 1 entre y 2 GB de datos, o crea una pequeña colección $out con.
Observa la proporción resultante.
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.
Dimensionar el volumen persistente que se va a implementar
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.
Seleccione una clase de almacenamiento
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
mongotrendimiento. La replicación implica escrituras en disco para nuevos segmentos de índice y lecturas en disco cuandomongotfusiona segmentos antiguos en otros más grandes.Umbral de solo lectura: Cuando un volumen alcanza el 90% de uso,
mongotentra 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%.
Monitorear el uso de recursos
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 |
Memoria |
| Aumentar la memoria en |
Disk | Uso superior al 90% | Reduzca el tamaño del índice para que el uso quede por debajo del umbral. |