Prácticas recomendadas para Alteryx AMP Engine
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 .
Temas generales
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 de recursos del sistema y las recomendaciones, consulta las secciones ¿Cómo administrar los recursos del sistema con AMP? y ¿Cuáles son los requisitos del sistema para 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.
Resultados comparativos
Nota
Utilizamos las siguientes mediciones para la evaluación comparativa:
Rendimiento del flujo de trabajo = (flujos de trabajo/tiempo de ejecución). El tiempo de ejecución es el tiempo total para ejecutar un flujo de trabajo.
Rendimiento del motor = (flujos de trabajo/tiempo de ejecución del motor). Tiempo de ejecución del motor es el tiempo en el cual el motor ejecuta un flujo de trabajo.
Flujos de trabajo = número de flujos de trabajo.
Cuando solo hay un flujo de trabajo, no hay una diferencia de tiempo significativa entre el rendimiento del motor y el rendimiento del flujo de trabajo. Si hay dos flujos de trabajo en una cola con solo un trabajador, el tiempo de ejecución del primer flujo de trabajo repercute en el tiempo de ejecución del segundo.
Resultados comparativos para una tarea de preparación de datos típica
Resultados comparativos de una tarea típica de aprendizaje automático o predictivo con uso intensivo de la CPU
Para obtener más información, consulta los enlaces de la documentación al final este documento.
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.
1. Controller > General > Enable AMP Engine
1. Antes de actualizar, toma nota de la configuración actual.
2. Después de actualizar, restaura la selección al valor deseado.
2. Worker > General > Allow Server to manage workflows running simultaneously
1. Antes de actualizar, toma nota del número establecido para “Workflows allowed to run simultaneously”.
2. Después de actualizar, anula la selección de Allow Server to manage workflows running simultaneously .
3. Ingresa el número que anotaste para “Workflows allowed to run simultaneously”.
3. Engine > General > Engine
1. Antes de actualizar, toma nota de la configuración actual.
2. Después de actualizar, restaura la selección al valor deseado.
4. Engine > General > Run engine at a lower priority
1. Antes de actualizar, toma nota de la configuración actual.
2. 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.
Cálculos
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 lógicos de CPU disponibles y en el total de recursos de memoria del sistema en el equipo 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:
Nota
Tareas simultáneas
número de tareas simultáneas = min(floor(procesadores lógicos/8), (floor(memoria total/8000) - 2))
Límite de memoria
límite de memoria = floor(memoria total/(número de tareas simultáneas +2))
Hilos de procesamiento
hilos de procesamiento = floor(total de procesadores lógicos/número de tareas simultáneas)
Recomendaciones para la configuración manual de valores
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 flujo de trabajo.
CPU por flujo de trabajo en ejecución: un flujo de trabajo en ejecución simultánea por cada 6-8 núcleos lógicos de CPU.
Número máximo de motores AMP que se ejecutan en paralelo: Esto depende exclusivamente del hardware. En teoría, podrías ejecutar 16 tareas de AMP o combinadas de AMP y el 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.
Recomendamos que reserves la memoria equivalente a 1 tarea para el sistema operativo y la memoria equivalente a una tarea adicional para evitar un impacto negativo si ejecutas manualmente un flujo de trabajo desde Designer en Server. Nuestras fórmulas para calcular los recursos ya tienen en cuenta estas recomendaciones.
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 un rendimiento óptimo .
Requisitos mínimos de hardware
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:
Nota
La línea destacada en verde es la configuración mínima recomendada. La línea en la que se muestra información para un flujo de trabajo simultáneo es útil para comprender cuánto necesitas aumentar los recursos para agregar una tarea adicional a la configuración existente.
Hardware recomendado para un rendimiento óptimo
Las recomendaciones de hardware para un rendimiento óptimo de Server se definen como el punto óptimo del hardware en el que Server puede completar los flujos de trabajo de la forma más eficiente posible cuando se usa AMP Engine. Esto es útil para eliminar la congestión en sistemas ocupados y optimizar el rendimiento y las capacidades de AMP Engine.
Recomendamos la siguiente configuración de hardware para un rendimiento óptimo:
Nota
* 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 servidores físicos locales como servidores virtuales en la nube.
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 permitirán 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 puede cambiar, y los trabajadores nuevos pueden 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 trabajadores que se pueden ejecutar simultáneamente.
Los flujos de trabajo que pueden ejecutarse simultáneamente se calcularán automáticamente al iniciar el servicio en función de la CPU y la memoria disponibles en el entorno de Server.
Engine > General > Engine : si el cliente ha cambiado este valor, independientemente del valor al que lo haya cambiado, ese valor persistirá después de la actualización. Si el cliente nunca cambió esta configuración y siempre utilizó la opción de motor original predeterminada, el valor predeterminado nuevo se establecerá 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 .
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 : si el cliente ha cambiado el valor de la opción para ejecutar el motor con una prioridad menor, independientemente del valor al que lo haya cambiado, ese valor permanecerá después de la actualización. Si el cliente siempre utilizó 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 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 calcularán automáticamente al iniciar el servicio en función de la CPU y la memoria disponibles en el entorno de Server.
El menú desplegable en 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 .
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 de manera predeterminada para ejecutar el motor con prioridad baja.
¿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 la 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 seguir las directrices de requisitos mínimos de hardware para obtener un rendimiento y una estabilidad óptimos.
¿La activación de AMP en Server hará que alguno de mis flujos de trabajo existentes falle?
No, se ejecutarán exactamente de la misma manera que antes.
¿El hecho de permitir la ejecución con ambos AMP y el motor original en Server cambiará la forma en que se ejecutan mis flujos de trabajo existentes?
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.
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.
Aunque, en general, los flujos de trabajo finalizarán más rápido, un flujo de trabajo que no sea AMP puede tardar un poco más en ejecutarse, ya que un flujo de trabajo AMP en competencia le quitará algunos recursos. Sin embargo, no cambia el funcionamiento de la Calidad de servicio (QoS) y algunos flujos de trabajo pueden ejecutarse más rápido. La QoS seguirá funcionando de la misma manera que siempre.
Cuando AMP esté habilitado, ¿podrán hacer esto los clientes?
El tiempo hasta la finalización debe ser siempre mejor. Solo hay unas pocas excepciones en las que tarda un poco más.
Si al activar AMP se pierde la garantía de tiempos de ejecución coherentes, ¿recomendamos a los usuarios con este caso de negocio que desactiven AMP?
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.
Inquietudes sobre la calidad del servicio
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 varios subprocesos, 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 disponibles 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.
Artículos sobre AMP
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