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.
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
When you upgrade to Server version 2022.1, we recommend validating your engine choice settings and resource allocations. The new 'Allow Server to manage workflows running simultaneously' functionality, and the change to enable AMP by default, can result in settings changing in your environment.
If you have an existing Server and want to maintain your current system settings, please read these instructions before upgrading.
1. Controller > General > Enable AMP Engine
Before upgrading, note your current settings.
After upgrading, restore the selection to your desired value.
2. Worker > General > Allow Server to manage workflows running simultaneously
Before upgrading, note the number set for ‘workflows allowed to run simultaneously’.
After upgrading, deselect Allow Server to manage workflows running simultaneously.
Input the number you saved for ‘workflows allowed to run simultaneously’.
3. Engine > General > Engine
Before upgrading, note your current settings.
After upgrading, restore the selection to your desired value.
4. Engine > General > Run engine at a lower priority
Before upgrading, note your current settings.
After upgrading, restore the selection to your desired value.
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:
Calculation Formulas
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))
For Server machines that act as both a worker and a controller with the embedded MongoDB, the Memory Limit (MB) is automatically calculated based on this formula:
(((Total Physical RAM/2) - 4096) / Number of Simultaneous Jobs)
For standalone workers, more memory is allocated to run workflows based on this formula:
(Total Physical RAM / (Number of Simultaneous Jobs +2))
If the formulas result in less than 2 GB, set the Memory Limit to the minimum of 2 GB to ensure the engine is able to execute.
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.
Number of physical cores per node: For optimal performance, we recommend 8 physical cores per node and horizontal scaling to additional nodes. Typically, this means 4 simultaneous running workflows per node.
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:
Desired # Concurrent Workflows | Minimum System Requirements | |
---|---|---|
Memory (GB RAM) | Physical Cores | |
2 | 32 | 4 |
3 | 48 | 6 |
4 | 64 | 8 |
5 | 80 | 10 |
6 | 96 | 12 |
7 | 112 | 14 |
8 | 128 | 16 |
Recommended Hardware for Computational Intensive Workloads
Server hardware recommendations for computationally intensive workloads are defined as the ideal specifications where Server can execute demanding workflows as efficiently as possible. This is essential for reducing congestion on busy systems.
The following hardware specifications are recommended for computational intensive workloads:
Desired # Concurrent Workflows | Computational Intensive Workload Recommendations | ||
---|---|---|---|
Memory (GB RAM) | Physical Cores | Logical Cores* | |
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 |
*Logical cores are either vCPUs or logical cores within a physical core. The standardization to refer to logical cores is a way of comparing consistently across both physical on-prem servers and virtual servers in the cloud. Intel hyperthreading, AMD SMT, 2:1 ratio of vCPU to physical core.
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.
No, they will run in the exact same way as they did before.
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.
If it’s properly resourced, both AMP and original Engine workflows should be predictable (predictable using a new baseline, instead of going off of historic original Engine performance results only). The only time it would become unpredictable is if a worker’s hardware resources are under-allocated (original Engine and AMP competing for resources).
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