El propósito de este documento es responder a preguntas relacionadas con el nuevo AMP Engine. El documento es tanto para administradores actuales como para usuarios nuevos.
Para obtener más información acerca de AMP Engine, consulta las páginas de ayuda de Alteryx AMP Engine y Motor.
Para obtener más información acerca de los requisitos del sistema Alteryx Server, consulta la página de ayuda Requisitos del sistema.
Para la mayoría de los casos prácticos, AMP Engine proporciona mejoras significativas en el rendimiento y la eficiencia con respecto al motor original cuando hay suficientes recursos del sistema. Para obtener más información sobre los requisitos y recomendaciones de recursos del sistema, consulta las secciones ¿Cómo se administran los recursos del sistema con AMP? y ¿Cuáles son los requisitos del sistema de AMP Engine?.
AMP está diseñado para trabajar con grandes volúmenes de datos a mayor velocidad y normalmente ejecuta flujos de trabajo más rápido, con un uso más completo de los recursos de la máquina en comparación con el motor original.
La arquitectura del motor original permite principalmente el procesamiento de un solo hilo, en el cual tus datos se procesan de un registro a la vez secuencialmente. Por otro lado, el nuevo concepto AMP permite un procesamiento masivo de varios subprocesos. AMP procesa los registros en paquetes para mejorar los tiempos de ejecución, y las herramientas pueden ejecutarse en paralelo. AMP también utiliza algoritmos más eficaces al agrupar y ordenar registros, lo que puede afectar el orden de los registros en el resultado.
En el artículo AMPlía tus flujos de trabajo, se describen algunas de las ventajas de rendimiento que ofrece el uso de AMP Engine:
Las herramientas más utilizadas funcionarán mejor en AMP.
Las ventajas de AMP suelen aumentar a medida que los tamaños de los datos crecen.
El rendimiento varía según el tamaño de los datos, el hardware subyacente, la infraestructura de red y del centro de datos, la configuración de Alteryx Server y la construcción del flujo de trabajo.
En Designer se activó AMP de forma predeterminada para nuevos flujos de trabajo. Para instalaciones de Server nuevas o para trabajadores nuevos en Servers existentes, lo predeterminado será permitir la ejecución con AMP y el motor original. La configuración del flujo de trabajo determina qué motor se utiliza.
Nota
Al actualizar a Server versión 2022.1, recomendamos validar la configuración de elección del motor y las asignaciones de recursos. La nueva funcionalidad para permitir que Server administre flujos de trabajo que se ejecutan simultáneamente, y el cambio para activar AMP de forma predeterminada, pueden provocar cambios en la configuración de tu entorno.
Si ya tienes Server y deseas mantener la configuración actual del sistema, lee estas instrucciones antes de realizar la actualización.
1. Controller > General > Enable AMP Engine
Antes de actualizar, toma nota de la configuración actual.
Después de actualizar, restaura la selección al valor deseado.
2. Worker > General > Allow Server to manage workflows running simultaneously
Antes de actualizar, toma nota del número establecido para “Workflows allowed to run simultaneously” (Flujos de trabajo que pueden ejecutarse simultáneamente).
Después de actualizar, anula la selección de Allow Server to manage workflows running simultaneously.
Ingresa el número que anotaste para “Workflows allowed to run simultaneously”.
3. Engine > General > Engine
Antes de actualizar, toma nota de la configuración actual.
Después de actualizar, restaura la selección al valor deseado.
4. Engine > General > Run engine at a lower priority
Antes de actualizar, toma nota de la configuración actual.
Después de actualizar, restaura la selección al valor deseado.
Te recomendamos que uses las nuevas opciones Allow Server to manage workflows running simultaneously para permitir a Server administrar flujos de trabajo que se ejecutan simultáneamente y Allow Server to manage engine resource para permitir a Server administrar los recursos del motor. Añadimos la lógica de mantener cada instancia del motor en funcionamiento dentro de la memoria y las restricciones lógicas de CPU definidas en la configuración del sistema. Los administradores deben tener cuidado de no sobreasignar si establecen estos valores manualmente en lugar de permitir que Server los administre.
Cuando activas las opciones Allow Server to manage workflows running simultaneously y Allow Server to manage engine resource, Server calcula el número de tareas simultáneas, así como los hilos de procesamiento de CPU (núcleos) y la cantidad de memoria que se asignará por tarea al iniciar el servicio. Estos cálculos se basan en el total de núcleos de CPU disponibles y en el total de recursos de memoria del sistema en la maquina host. También se han diseñado con el propósito de optimizar el rendimiento de AMP para el hardware disponible en función de nuestros resultados comparativos. Las fórmulas para esos cálculos son las siguientes:
Fórmulas de cálculo
Tareas simultáneas
número de trabajos simultáneos = floor(número de procesadores físicos/2)
Límite de memoria
límite de memoria = IF(MongoDB habilitado en el nodo, (((Total de RAM física/2) - 4096) / Número de trabajos simultáneos) , (Total de RAM física / (Número de trabajos simultáneos +2)) )
Para las máquinas de Server que actúan como trabajador y controlador con el MongoDB integrado, el Límite de memoria (MB) se calcula automáticamente basado en esta fórmula:
(((Total de RAM Física/2) - 4096) / Número de trabajos simultáneos)
Para los trabajadores independientes, se asigna más memoria para ejecutar flujos de trabajo basado en esta fórmula:
(Total de RAM física / (Número de trabajos simultáneos +2))
Si las fórmulas dan como resultado menos de 2 GB, establece el límite de memoria al mínimo de 2 GB para garantizar que el motor pueda ejecutarse.
Hilos de procesamiento
Número predeterminado de hilos de procesamiento = [LogicalCores]
Te recomendamos que sigas estas directrices para obtener un rendimiento óptimo cuando configures estos valores manualmente:
Memoria por flujo de trabajo en ejecución: la recomendación mínima para un rendimiento óptimo con AMP es de 8 GB por núcleo físico.
CPU por flujo de trabajo en ejecución: un flujo de trabajo en ejecución simultánea por cada 2 núcleos físicos.
Número de núcleos físicos por nodo: Para un rendimiento óptimo, recomendamos ocho núcleos físicos por nodo y escalamiento horizontal a nodos adicionales. Por lo general, esto significa 4 flujos de trabajo en ejecución simultánea por nodo.
Número máximo de motores AMP que se ejecutan en paralelo: Esto depende exclusivamente del hardware. En teoría, podrías ejecutar 16 trabajos de AMP o mixtos de AMP y motor original a la vez si tuvieras un trabajador con 128 núcleos lógicos y 160 GB de RAM. Aunque, en este punto, es más probable que la E/S del disco y el ancho de banda de la red acaben causando el cuello de botella. Tanto el motor original como el AMP estarán limitados por el rendimiento de E/S del disco y el ancho de banda de la red, según el tamaño de los datos, de dónde provienen y hacia dónde se envían.
Número máximo de motores AMP que se ejecutan al mismo tiempo que E1: Server no diferencia entre una tarea de AMP Engine y una tarea del motor original. Server solo envía el flujo de trabajo al motor y este determina si debe ejecutarse a través de AMP o del motor original. Así, Server supone que todas las tareas son de AMP si AMP Engine está habilitado.
Nuestras fórmulas para calcular los recursos ya tienen en cuenta estas recomendaciones. Para obtener más información, ve a Engine.
Para conocer los requisitos del sistema de Server más recientes, consulta la página de ayuda Requisitos del sistema de Server. Hemos separado nuestras recomendaciones en dos categorías diferentes: Requisitos mínimos de hardware y Hardware recomendado para cargas de trabajo computacionales intensivas.
Los requisitos mínimos de hardware de Server se definen como el hardware mínimo necesario para ejecutar una instalación estable de Alteryx Server. Si no cumples con los requisitos mínimos, corres el riesgo de un rendimiento deficiente y un cierre aleatorio del servicio en cualquier nodo en el que se ejecute el motor.
Se recomiendan los siguientes requisitos mínimos de hardware para el número deseado de flujos de trabajo simultáneos:
Número deseado de flujos de trabajo concurrentes | Requisitos mínimos del sistema | |
---|---|---|
Memoria (GB de RAM) | Núcleos físicos | |
2 | 32 | 4 |
3 | 48 | 6 |
4 | 64 | 8 |
5 | 80 | 10 |
6 | 96 | 12 |
7 | 112 | 14 |
8 | 128 | 16 |
Las recomendaciones de hardware de Server para cargas de trabajo con uso intensivo del procesamiento se definen como las especificaciones ideales donde Server puede ejecutar flujos de trabajo exigentes de la manera más eficiente posible. Esto es esencial para reducir la congestión en sistemas ocupados.
Se recomiendan las siguientes especificaciones de hardware para cargas de trabajo computacionales intensivas:
Número deseado de flujos de trabajo concurrentes | Recomendaciones para cargas de trabajo computacionales intensivas | ||
---|---|---|---|
Memoria (GB de RAM) | Núcleos físicos | Núcleos lógicos* | |
2 | 64 | 8 | 16 |
3 | 96 | 12 | 24 |
4 | 128 | 16 | 32 |
5 | 160 | 20 | 40 |
6 | 192 | 24 | 48 |
7 | 224 | 28 | 56 |
8 | 256 | 32 | 64 |
* Los núcleos lógicos son vCPU o núcleos lógicos dentro de un núcleo físico. La estandarización para referirse a núcleos lógicos es una forma de comparar de forma consistente tanto en servidores físicos locales como en servidores virtuales en la nube. Intel hyperthreading, AMD SMT, relación de 2:1 de vCPU a núcleo físico.
Antes de la versión 2022.1, AMP estaba disponible en Server, pero estaba deshabilitado de forma predeterminada.
Con la versión 2022.1 y posteriores, para las nuevas instalaciones de Server, el controlador y el trabajador permiten la ejecución de AMP y del motor original de forma predeterminada. Para las instalaciones de Server existentes, la configuración existente de controlador y trabajador podría cambiar, y los trabajadores nuevos podrían tener habilitada la ejecución de AMP y del motor original de forma predeterminada. Si deseas evitar esto, consulta nuestra nota sobre cómo mantener la configuración actual.
La configuración para habilitar AMP Engine en los nodos de controlador y de trabajador existe en la configuración del sistema de Alteryx. Ahora hay configuraciones adicionales para administrar asignaciones de hardware para cada motor. También hay una configuración recomendada para permitir que Server administre los recursos del motor.
Configuración del sistema para instalaciones de Server existentes:
Controller > General > Enable AMP Engine: si alguna vez has cambiado este valor, no importa a qué valor lo hayas cambiado, ese valor persiste después de la actualización. Si nunca has cambiado este valor y siempre has dejado el estado predeterminado como no seleccionado, entonces la casilla estará ahora seleccionada, lo que significa que AMP está habilitado por defecto.
Worker>General>Allow Server to manage workflows running simultaneously se establece de manera predeterminada en verdadero para todos los trabajadores. Si esta configuración se establece en verdadero, no podrás establecer el número de flujos de trabajo que se pueden ejecutar simultáneamente.
Los flujos de trabajo que pueden ejecutarse simultáneamente se calculan automáticamente al iniciar el servicio en función del total de CPU y memoria disponible en este nodo.
Engine > General > Engine, si has cambiado este valor, independientemente del valor al que lo hayas cambiado, ese valor permanecerá después de la actualización. Si nunca cambiaste esta configuración y siempre utilizaste la opción de motor original predeterminada, el valor predeterminado nuevo se establece en “Both Engines” (ambos motores).
Engine > General > Allow Server to manage engine resources es una configuración nueva que se establece de forma predeterminada en falso para no permitir que Server administre los recursos del motor.
Engine>General>Memory Limit: la fórmula para calcular el valor predeterminado de límite de memoria ha cambiado.
Engine>General>Default number of processing threads: la fórmula para calcular el valor predeterminado de cantidad de hilos de procesamiento ha cambiado.
Engine> General> Run engine at a lower priority (Ejecutar motor con una prioridad menor): Si has cambiado este valor, independientemente del valor al que lo hayas cambiado, ese valor permanecerá después de la actualización. Si siempre utilizaste el valor predeterminado Falso, después de la actualización el nuevo valor predeterminado se establecerá en Verdadero.
Configuración del sistema para instalaciones de Server nuevas:
La casilla de verificación Controller > General > Enable AMP Engine se establece de forma predeterminada en True (verdadero).
Worker>General>Allow Server to manage workflows running simultaneously se establece de manera predeterminada en verdadero para todos los trabajadores.
Los flujos de trabajo que pueden ejecutarse simultáneamente se calculan automáticamente al iniciar el servicio en función del total de CPU y memoria disponible en este nodo.
El menú desplegable Engine > General > Engine se establece de forma predeterminada en Both Engines (ambos motores).
Engine > General > Allow Server to manage engine resources se establece de forma predeterminada en falso para no permitir que Server administre los recursos del motor.
Engine>General>Memory Limit: la fórmula para calcular el valor predeterminado de límite de memoria ha cambiado.
Engine>General>Default number of processing threads: la fórmula para calcular el valor predeterminado de cantidad de hilos de procesamiento ha cambiado.
Engine>General>Run engine at a lower priority se establece en verdadero para ejecutar el motor con una menor prioridad.
¿Pueden los usuarios volver a cambiar la configuración (es decir, desactivar AMP en Server)?
Si el administrador no desea utilizar AMP, tendrá que desactivarlo manualmente. Consulta la siguiente imagen para ver la configuración del motor en la sección de configuración general del controlador de la configuración del sistema.
Si el administrador desea desactivar AMP en algunos nodos de trabajador, puede hacerlo en la sección Engine Configuration de la configuración del sistema. Consulta a continuación la configuración del menú desplegable del motor. En la siguiente imagen, la configuración está establecida en Both Engines (ambos motores), pero se puede cambiar solo para seleccionar Original Engine (motor original). El valor Both Engines es el predeterminado en un entorno nuevo de Server.
No hay un límite de memoria independiente. En Configuración del sistema, el campo Engine > General > Memory Limit se aplica al motor. Se aplica a Designer, Server y básicamente a cualquier lugar en el que el motor se esté ejecutando.
Designer solo ejecuta un flujo de trabajo a la vez, por lo que las limitaciones son diferentes y más tolerantes.
El sistema tiene habilitado AMP automáticamente y todas las configuraciones relevantes establecidas de forma predeterminada. Solo tendrían que realizar cambios si desean desactivarlo. Consulta las respuestas en ¿Qué cambios se han realizado en Designer y Server?
Asegúrate de que se cumplan los requisitos mínimos de hardware para mantener un entorno de Server estable.
No, se ejecutarán exactamente de la misma manera que antes.
Cuando se guarda un flujo de trabajo en Designer, la opción de configuración de tiempo de ejecución es "Usar AMP Engine" o no. Cualquier opción guardada en Designer se respetará cuando se ejecute en Server. Server nunca anulará la opción de motor del flujo de trabajo. Por lo tanto, si se permite la ejecución con AMP y con el motor original en Server, no se ejecutará ningún flujo de trabajo guardado como motor original con AMP Engine. Si se guarda un flujo de trabajo con AMP como opción de motor y AMP no está habilitado en Server, el flujo de trabajo NO se ejecutará con motor original y fallará.
Para que un flujo de trabajo guardado anteriormente con el motor original se ejecute con AMP, el flujo de trabajo se debe volver a guardar en Designer con la opción Usar AMP Engine seleccionada.
Ejecutar flujos de trabajo con AMP puede cambiar el orden de las filas de salida resultantes porque ahora algunas cosas se realizan en paralelo. Ten esto en cuenta y verifica si los procesos dependen del orden de salida. Si es así, puedes realizar ajustes en los flujos de trabajo para garantizar el mismo orden del motor original. Para obtener más información, ve a Modo de compatibilidad de motor.
Puedes esperar cambios en el tiempo de ejecución de cada flujo de trabajo.
En general, las tareas de flujo de trabajo con AMP se ejecutarán significativamente más rápido con el número correcto de núcleos de procesamiento.
En algunos casos, las tareas con AMP pueden tardar más de lo que solían tardar como tareas con el motor original, especialmente si los flujos de trabajo consumen mucho de CPU y el número de subprocesos por flujo de trabajo es bajo.
La Calidad del servicio (QoS) seguirá funcionando de la misma manera que siempre.
Si disponen de los recursos adecuados, los flujos de trabajo con AMP y con el motor original deben ser predecibles (con el uso de una referencia nueva, en lugar de solo guiarse por los resultados históricos de rendimiento del motor original). El único momento en que se haría impredecible es si los recursos de hardware de un trabajador no están bien asignados (el motor original y AMP compiten por los recursos).
Es posible guardar el flujo de trabajo en Server con AMP habilitado y, luego, guardar una copia de este con AMP deshabilitado. Luego, ejecuta cada flujo de trabajo varias veces para ver cuál funciona mejor. Ten en cuenta también que los flujos de trabajo con AMP tienden a ejecutarse más rápido cuando se ejecutan simultáneamente con otros flujos de trabajo con AMP.
El límite de memoria de la configuración del motor se aplica al motor, independientemente de si es original o AMP. La diferencia está en cómo cada motor maneja ese límite de memoria:
El motor original asignará previamente todo el límite.
AMP asignará lo que necesita hasta el límite de memoria.
Es un uso más eficiente de los recursos. El motor original tiene multiples hilos de procesamiento, pero no demasiados. AMP es mucho más competente en la ejecución de tareas en serie. Las ventajas se encuentran en el rendimiento total, que es mejor con AMP que cuando se utiliza el motor original.
Server ahora es capaz de analizar tu hardware y asignar los recursos adecuados por motor. No es el mismo nivel de administrador de recursos que el que se encuentra en un sistema operativo, pero con esta nueva función hemos implementado la capacidad de Server para administrar sus recursos.
Asignamos automáticamente el número de tareas permitidas para ejecutarse simultáneamente en función de los recursos de hardware totales si el administrador lo configura así. Para obtener más información acerca de la configuración del trabajador, ve a la página de ayuda Trabajador.
No, los recursos se asignan por tarea del motor. Cada tarea tendría sus propios recursos a su disposición, lo que significa que no debería haber contención de recursos entre tareas.
Seminario web de AMP Engine (32 minutos)
Alteryx Engine y AMP: las principales diferencias
Acelera tus procesos analíticos con el nuevo AMP Engine
Explicación de Alteryx AMP Engine
Análisis técnico de AMP Engine | Parte 1 | ¿Por qué AMP?
Análisis técnico de AMP Engine | Parte 2 | Conceptos clave de AMP Engine