Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Guía para la selección del nivel de Stream Processing en Atlas

Atlas Stream Processing asigna recursos por procesador de flujo según nivel. La asignación fija de recursos y costos proporciona previsibilidad, lo que simplifica el proceso de diseño del sistema. Utiliza esta guía para comprender qué niveles son los más adecuados para tus cargas de trabajo de Stream Processing al planificar una implementación.

Cada nivel proporciona una asignación fija de potencia de procesamiento, memoria, ancho de banda, paralelismo y, en el caso de los procesadores con Apache Kafka fuentes—particiones.

Nivel
vCPU
RAM (GB)
Ancho de banda (Mbps)
Paralelismo máximo
Límite de partición de Kafka de origen

SP2

0.25

0.5

50

1

32

SP5

0.5

1

125

2

64

SP10

1

2

200

8

Ilimitado

SP30

2

8

750

16

Ilimitado

SP50

8

32

2500

64

Ilimitado

Las diferentes asignaciones de recursos de cada nivel los hacen adecuados para diferentes etapas y escalas de proyectos.

Nivel
Caso de uso

SP2

Desarrollo, Prueba de implementación

La opción de menor costo, capaz de admitir cargas de trabajo simples con requisitos de recursos limitados.

SP5

Desarrollo, Implementación básica en producción

Una opción de bajo costo adecuada para tareas de producción con bajo rendimiento, incluso aquellas que emplean cálculos más complejos. Los procesadores SP5 pueden ofrecer soporte para filtro básico, proyecciones y procesamiento de flujo de cambios.

SP10

Implementación de producción generalizada

Un punto de partida para cargas de trabajo de producción. SP10 y superiores están destinados a pipelines que requieren niveles más altos de paralelismo, particionamiento de Kafka ilimitado u operaciones de enriquecimiento de datos, como búsquedas y combinaciones.

SP30

Implementación de producción compleja

Una opción de alto rendimiento diseñada para operaciones stateful que consumen mucha memoria. SP30 admite pipelines que utilizan ventanas de larga duración, búsquedas múltiples y etapas que requieren grandes búferes de RAM para el enriquecimiento de datos a escala.

SP50

Producción a escala empresarial

La opción de mayor rendimiento, diseñada para flujos de alto rendimiento y lógica de transformación extensiva. Los procesadores SP50 son apropiados para operaciones que requieren masivo paralelismo o flujos de trabajo de alta demanda computacional.

Ten en cuenta los siguientes factores a la hora de seleccionar un nivel adecuado:

Un procesador de flujo podría requerir más recursos durante su ejecución inicial que durante las operaciones regulares. Por ejemplo, si el procesador realiza una $initialSync para una gran colección Atlas, ese procesador necesita soportar una gran E/S y computación durante todo el proceso de sincronización.

Para absorber una demanda tan elevada, selecciona temporalmente un nivel superior y reduce el procesador una vez que la sincronización esté completa y el procesador pase a consumir solo nuevos eventos del flujo de cambios.

La lógica del pipeline de agregación es el principal factor del consumo de CPU y RAM.

  • Windows: Las ventanas de larga duración consumen más RAM para mantener en vuelo
    documento.
  • Lógica personalizada: Javascript $function etapas o agrupamiento complejo
    la lógica aumenta los requisitos computacionales de cada mensaje.
  • Crear complejidad: Etapas adicionales con estado o complejidad computacional
    introducir una mayor variación potencial en la demanda de recursos. Mantener una capacidad excedente asegura un rendimiento constante, incluso durante picos en el consumo.

Cada punto de contacto en la red o el almacenamiento incrementa la sobrecarga de un procesador de flujos.

  • Densidad de Fuente o Sumidero: lectura o escritura en paralelo
    Las fuentes o sumideros, como los Apache Kafka temas con sus particiones, aumentan los requerimientos de entrada/salida (E/S).
  • Enriquecimiento de datos: $lookup y $https etapas; y operaciones
    recopilaciones de Atlas para enriquecer los datos en un flujo requieren ancho de banda de red y agrupamiento de conexiones.
  • Coordinación: En implementaciones complejas que orquestan muchas fuentes
    y sinks, los stream processors pueden servir como centros que enrutan el flujo de datos entre cada uno de estos nodos. Estos procesadores se benefician del mayor rendimiento de los niveles SP30 y SP50.

Por el contrario, las cargas de trabajo de Stream Processing de alto rendimiento pueden aumentar la demanda sobre los recursos conectados.

  • Impacto en Atlas: I/O paralelizado de gran volumen desde una transmisión

    el procesador puede exceder la capacidad de lectura o escritura de los clústeres Atlas de origen o de destino. Esto no solo puede aumentar la latencia para el procesador, sino también convertirse en un cuello de botella para otras cargas de trabajo dependientes de esos clústeres.

    Para asegurar el rendimiento en todo el sistema, escala tus clústeres de Atlas proporcionalmente a los procesadores con los que interactúan.

Los objetivos de rendimiento pueden requerir un procesador de nivel superior incluso cuando la lógica de procesamiento es sencilla.

  • Alto rendimiento: Los procesadores de nivel superior ofrecen un mejor soporte para transmisiones
    que producen eventos a alta velocidad.
  • ANR de baja latencia: El alto paralelismo que ofrecen los procesadores de nivel superior ayuda a garantizar que los eventos no se acumulen en una cola cuando la velocidad es crucial. En particular, los procesadores SP50 ofrecen cuatro veces más hilos que los procesadores SP30.

  • Enriquecimiento y almacenamiento en caché de datos: cuando se utiliza $cachedLookup para enriquecer
    los flujos con conjuntos grandes de datos de referencia estáticos o que cambian lentamente, favorecen procesadores de mayor nivel para proporcionar la RAM necesaria para el almacenamiento en caché.
  • Sinks complejos: Algunos sinks implican costos más elevados
    transformaciones, transacciones y sobrecarga de gestión de archivos. Para los procesadores que interactúan con estos receptores, los niveles superiores ayudan a garantizar un rendimiento y una latencia coherentes.

El escalado de Atlas Stream Processing es vertical. Puedes escalar un procesador deteniéndolo, seleccionando un nuevo nivel y reiniciándolo. Los puntos de control de Atlas Stream Processing garantizan que no se pierdan datos durante la transición. Supervisa el rendimiento de tus procesadores con regularidad y ajusta sus niveles en función de los factores descritos en esta guía.

Volver

Empezar

En esta página