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.
Asignación de recursos
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 |
Selección de carga de trabajo
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. |
Considerations
Ten en cuenta los siguientes factores a la hora de seleccionar un nivel adecuado:
Oleada de inicialización
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.
Lógica de pipeline
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
$functionetapas o agrupamiento complejo - la lógica aumenta los requisitos computacionales de cada mensaje.
- Lógica personalizada: Javascript
- 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.
Infraestructura
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:
$lookupy$httpsetapas; y operaciones - recopilaciones de Atlas para enriquecer los datos en un flujo requieren ancho de banda de red y agrupamiento de conexiones.
- Enriquecimiento de datos:
- 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.
Rendimiento y latencia
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
$cachedLookuppara 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é.
- Enriquecimiento y almacenamiento en caché de datos: cuando se utiliza
- 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.
Escalado
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.