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, visita las páginas de ayuda Alteryx AMP Engine y Engine.
Temas generales
AMP proporciona mejoras significativas en el rendimiento y la eficiencia comparado con al motor original.
Para obtener más información, consulta los enlaces de la documentación al final este documento.
Alteryx Designer ha activado 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. Before upgrading, note your current settings.
2. After upgrading, restore the selection to your desired value.
2. Worker > General > Allow Server to manage workflows running simultaneously
1. Before upgrading, note the number set for ‘workflows allowed to run simultaneously’.
2. After upgrading, deselect ‘Allow Server to manage workflows running simultaneously’.
3. Input the number you saved for ‘workflows allowed to run simultaneously’.
3. Engine > General > Engine
1. Before upgrading, note your current settings.
2. After upgrading, restore the selection to your desired value.
4. Engine > General > Run engine at a lower priority
1. Before upgrading, note your current settings.
2. After upgrading, restore the selection to your desired value.
We recommend you use the new options Allow Server to manage workflows running simultaneously and Allow Server to manage engine resources. We've added logic to keep each engine instance working within the memory and logical CPU constraints defined in the System Settings. Admins must take care not to over-allocate if they set these values manually instead of allowing Server to manage them.
Calculations
When you enable the options to Allow Server to manage workflows running simultaneously and Allow Server to manage engine resources, Server calculates the number of simultaneous jobs, as well as the CPU threads (cores) and amount of memory to allocate per job at service startup. These calculations are based on total available logical CPU cores and total system memory resources on the host machine. They are also designed to optimize AMP performance for the available hardware based on our benchmarking results. The formulas for those calculations are as follows:
Simultaneous Jobs
number of simultaneous jobs = min(floor(logical processors / 8), (floor(total memory / 8000) - 2))
Memory Limit
memory limit = floor(total memory / (number of simultaneous jobs +2))
Processing Threads
threads = floor(total logical processors / number of simultaneous jobs)
Recommendations for Manual Value Setting
We recommend you follow these guidelines for optimal performance when setting these values manually:
- Memory per running workflow: 8GB per workflow is the minimum recommendation for optimal performance with AMP.
- CPU per running workflow: 1 simultaneous running workflow per 6-8 logical CPU cores.
- Maximum number of AMP engines run in parallel: This is entirely hardware dependent. In theory, you could run 16 AMP or mixed AMP and original Engine jobs at once if you had a worker with 128 logical cores and 160GB of RAM. Although, at this point disk I/O and network bandwidth are more likely to end up being the bottleneck. Both the original Engine and AMP will be performance limited by disk I/O and network bandwidth depending on the size of the data and where it is coming from and being output to.
- Max number of AMP engines run while also running E1: Server doesn’t differentiate between an AMP engine and an original Engine job. Server just sends the workflow to Engine and Engine determines if it needs to run via AMP or original Engine. As such Server assumes all jobs are AMP if AMP engine is enabled.
We recommend that you reserve 1 job's worth of memory for the operating system and an additional job's worth of memory to avoid a negative impact if you manually run a workflow from Designer running on the Server. Our formulas to calculate resources already take these recommendations into consideration.
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 los requisitos mínimos, corres el riesgo de tener un rendimiento deficiente o de que el servicio se apague en cualquier nodo en el que funcione el motor.
Se recomiendan los siguientes requisitos mínimos de hardware para el número deseado de flujos de trabajo simultáneos:
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. Esto es útil para eliminar la congestión en sistemas ocupados.
Se recomiendan las siguientes sugerencias de hardware para un rendimiento óptimo:
- 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 no cambiará, pero todos los trabajadores nuevos tendrán habilitada la ejecución de AMP y del motor original de forma predeterminada.
- 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:
- La casilla de verificación para habilitar AMP Engine en Controller> General> Enable AMP Engine llevará cualquier opción que el usuario haya establecido antes de la actualización.
- La configuración para permitir que Server administre flujos de trabajo que se ejecutan simultáneamente en Worker> General> Allow Server to manage workflows running simultaneously es nueva, y el valor predeterminado se establece en verdadero para todos los trabajadores nuevos.
- 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.
- 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 permanecerá 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 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 subprocesos 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 para habilitar AMP Engine en 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 para no permitir que Server administre los recursos del motor .
- Engine> General> Memory Limit: la fórmula para calcular el valor del límite de memoria predeterminado ha cambiado.
- Engine> General> Default number of processing threads: la fórmula para calcular el valor predeterminado de cantidad de subprocesos 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.
- 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.
- No hay un límite de memoria independiente. En la configuración del sistema, 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 tendrá 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.