Meilleures pratiques d'AMP Engine

Version:
2022.1
Last modified: May 05, 2022

L'objectif de ce document est de répondre aux questions relatives au nouvel AMP Engine. Le document est destiné aux administrateurs existants et aux nouveaux utilisateurs. 

Pour plus d'informations sur AMP Engine, consultez les pages d'aide Alteryx AMP Engine et Moteur

Rubriques générales

Pourquoi dois-je activer AMP ?

AMP améliore considérablement les performances et l'efficacité par rapport au moteur d'origine.

AMP améliore considérablement les performances et l'efficacité par rapport au moteur d'origine.

 

Pour plus d'informations, reportez-vous aux liens vers la documentation au bas de ce document. 

Quelles sont les modifications apportées à Designer et à Server ?

Designer a activé AMP par défaut pour les nouveaux workflows. Pour les nouvelles installations de Server ou les nouveaux workers sur des Servers existants, la valeur par défaut sera d'autoriser l'exécution d'AMP et du moteur d'origine. Les paramètres de workflow déterminent le moteur utilisé. 

What if I want to preserve my current engine system settings?

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. 

How to manage system resources with AMP?

 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.

Quelles sont les spécifications minimales requises ?

Nous avons divisé nos recommandations en deux catégories : Configuration matérielle minimale requise et Matériel recommandé pour des performances optimales

Configuration matérielle minimale requise

La configuration matérielle minimale requise de Server correspond au matériel minimal requis pour exécuter une installation stable d'Alteryx Server. Si vous ne respectez pas les exigences minimales, vous risquez de rencontrer des problèmes de performances et/ou le service peut s'arrêter sur un nœud sur lequel le moteur s'exécute. 

Les configurations matérielles minimales recommandées selon le nombre souhaité de workflows simultanés sont les suivantes :

Configuration matérielle minimale requise de Server selon le nombre souhaité de workflows simultanés.

Matériel recommandé pour des performances optimales

Les recommandations matérielles de performances optimales de Server correspondent au matériel minimal idéal requis pour que Server optimise l'exécution des workflows. Ceci permet d'éliminer la gestion des systèmes très sollicités. 

Les recommandations matérielles recommandées pour des performances optimales sont les suivantes : 

Recommandations matérielles pour des performances optimales de Server, définies comme idéales pour que Server optimise l'exécution des workflows.

Quels sont désormais les paramètres spécifiques par défaut dans la version 22.1 ? Quels étaient les paramètres par défaut avant cette modification ?
  1. Dans les versions antérieures à 2022.1, AMP était disponible sur Server, mais désactivé par défaut.
  2. Depuis la version 2022.1, sur les nouvelles installations de Server, le contrôleur et le worker autorisent par défaut l'exécution d'AMP et du moteur d'origine. Pour les Servers existants, les paramètres du contrôleur et du worker en vigueur demeurent inchangés. Néanmoins, par défaut, l'exécution d'AMP et du moteur d'origine est activée sur tous les nouveaux workers. 
  3. Les paramètres d'activation d'AMP Engine dans les nœuds de contrôleur et de worker se trouvent dans les paramètres système Alteryx. Il existe désormais des paramètres supplémentaires pour la gestion des allocations matérielles pour chaque moteur. Il existe également un paramètre recommandé pour autoriser Server à gérer les ressources du moteur
  4. Paramètres système pour les installations de Server existantes : 
    1. La case à cocher Controller> General> Enable AMP Engine reprend l'option que l'utilisateur avait précédemment définie avant la mise à niveau. 
    2. Worker> General> Allow Server to manage workflows running simultaneously est un nouveau paramètre. La valeur par défaut est True pour tous les nouveaux workers. 
      1. Le nombre de workers pouvant s'exécuter simultanément (Workers allowed to run simultaneously) est automatiquement calculé au démarrage du service en fonction du processeur et de la mémoire disponibles dans l'environnement Server. 
        Configuration d'un worker dans les paramètres système Alteryx.
    3. Engine> General> Engine : si le client a déjà changé cette valeur, la nouvelle valeur sera persistante après la mise à niveau, et ce quelle que soit la modification. Si le client n'a jamais modifié ce paramètre et a toujours utilisé l'option par défaut du moteur d'origine, la nouvelle valeur par défaut sera définie sur Both Engines. 
    4. Engine> General> Allow Server to manage engine resources est un nouveau paramètre qui est défini par défaut sur False
      Configuration des deux moteurs dans les paramètres système Alteryx.
    5. Engine> General> Memory Limit : formule qui permet de calculer la valeur par défaut a changé.  
    6. Engine> General> Default number of processing threads : formule qui permet de calculer la valeur par défaut a changé.  
    7. Engine> General> Run engine at a lower priority : si le client a déjà changé cette valeur, la nouvelle valeur sera persistante après la mise à niveau, et ce quelle que soit la modification. Si le client a toujours utilisé la valeur par défaut False, après la mise à niveau, la nouvelle valeur par défaut sera définie sur True.
  5. Paramètres système pour les nouvelles installations de Server :
    1. La case à cocher Controller> General> Enable AMP Engine est par défaut définie sur True
    2. Le paramètre Worker> General> Allow Server to manage workflows running simultaneously prend par défaut la valeur True pour tous les workers. 
      1. Le nombre de workers pouvant s'exécuter simultanément (Workers allowed to run simultaneously) est automatiquement calculé au démarrage du service en fonction du processeur et de la mémoire disponibles dans l'environnement Server. 
    3. La liste déroulante Engine> General> Engine affiche par défaut Both Engines
    4. Le paramètre Engine> General> Allow Server to manage engine resources est défini par défaut sur False
    5. Engine> General> Memory Limit : formule qui permet de calculer la valeur par défaut a changé. 
    6. Engine> General> Default number of processing threads : formule qui permet de calculer la valeur par défaut a changé.  
    7. Le paramètre Engine> General> Run engine at a lower priority est défini par défaut sur True
  6. Les utilisateurs peuvent-ils rétablir les paramètres modifiés (c.-à.-d., désactiver AMP dans Server) ?
    1. Si l'administrateur ne veut pas utiliser AMP, il doit le désactiver manuellement. Voir l'image ci-dessous pour visualiser le paramètre Engine dans la section Configuration générale du contrôleur des paramètres système.
      Configuration du contrôleur dans les paramètres système Alteryx.
    2. Si l'administrateur souhaite désactiver AMP sur certains nœuds de worker, il peut procéder à l'opération dans la section Configuration du moteur des paramètres système. Voir ci-dessous la liste déroulante du paramètre Engine. Dans l'image ci-dessous, il est défini sur Both Engines, mais peut être modifié pour sélectionner le moteur d'origine Original Engine uniquement. Both Engines est la valeur par défaut dans un nouvel environnement Server.
      Configuration du moteur dans les paramètres système Alteryx.
Existe-t-il une limite de mémoire distincte pour Designer et Server ?
  • Il n'y a pas de limite de mémoire distincte. Dans Paramètres système, le champ Engine> General> Memory Limit s'applique au moteur. Il s'applique à la fois à Designer et Server, soit à toute application où le moteur s'exécute.
  • Designer n'exécute qu'un seul workflow à la fois. Les limitations sont donc différentes et plus tolérantes.
Comment un nouveau système doit-il être configuré en fonction de ces mises à jour ?

AMP est automatiquement activé sur le système et tous les paramètres pertinents sont configurés par défaut. Les modifications sont uniquement nécessaires s'ils souhaitent le désactiver. Reportez-vous aux réponses de la section Quelles sont les modifications apportées à Designer et à Server ?

Assurez-vous de respecter les directives de la  configuration matérielle minimale requise pour des performances et une stabilité optimales.

Quel est l'impact de l'activation d'AMP sur Server pour les workflows existants ?

L'activation d'AMP dans Server entraînera-t-elle l'échec de l'un de mes workflows existants ? 

  • Non, ils s'exécuteront exactement de la même manière qu'auparavant.

Le fait d'autoriser l'exécution d'AMP et du moteur d'origine sur Server risque-t-il de modifier le fonctionnement de mes workflows existants ? 

  • Lorsqu'un workflow est enregistré dans Designer, l'option de paramètre Exécution est d'utiliser AMP Engine ou non. Quelle que soit l'option enregistrée dans Designer, elle est prise en compte lors de l'exécution dans Server. Server ne remplace jamais l'option de moteur du workflow. Par conséquent, l'autorisation d'exécuter AMP et le moteur d'origine sur Server n'entraîne pas pour autant l'exécution de workflows avec le moteur AMP Engine si ces derniers ont été enregistrés comme moteur d'origine. Par conséquent, si AMP est l'option de moteur enregistrée pour un workflow, mais qu'elle n'est pas activée dans Server, le workflow NE s'exécute PAS avec le moteur d'origine et l'exécution échoue. 
  • Pour qu'un workflow précédemment enregistré comme moteur d'origine s'exécute en tant qu'AMP, il doit être à nouveau enregistré dans Designer avec le paramètre Utiliser AMP Engine sélectionné. 
  • L'exécution de workflows dans AMP peut modifier l'ordre des lignes de sortie résultantes, car certaines opérations sont désormais effectuées en parallèle. Gardez cela présent à l'esprit et vérifiez si vos processus dépendent de l'ordre de sortie. Si c'est le cas, vous pouvez régler vos workflows pour garantir l'ordre du moteur d'origine.
Si je crée de nouveaux workflows, que je les enregistre avec l'option Utiliser AMP Engine sélectionnée et que j'active AMP dans Server, lorsque les nouveaux workflows AMP s'exécutent parallèlement à mes workflows de moteur d'origine existants, quel impact cela a-t-il sur la qualité de service (QoS) ?
  • Vous pouvez vous attendre à des changements concernant la durée d'exécution de chaque workflow.
  • En général, les tâches de workflow AMP s'exécuteront beaucoup plus rapidement avec le nombre de cœurs de traitement approprié.
  • Dans certains cas, les tâches AMP pourront prendre plus de temps que celles du moteur d'origine, en particulier si les workflows sont gourmands en CPU et que le nombre de threads par workflow est faible.
  • Bien qu'en général, le délai d'exécution de vos workflows sera plus court, l'exécution d'un workflow non-AMP pourra être plus long, puisqu'un workflow AMP concurrent lui prendra des ressources. Cependant, cela n'a aucune incidence sur le fonctionnement de la qualité de service (QoS) et certains workflows pourront s'exécuter plus rapidement. La QoS continuera de fonctionner comme elle l'a toujours fait.
Les clients recherchent des temps d'exécution constants pour certains workflows dont l'exécution doit se terminer avant un certain délai.

Cela est-il envisageable lorsqu'AMP est activé ?

  • Le délai de réalisation devrait toujours être meilleur, à quelques exceptions près, où la synchronisation est plus longue.

Si l'activation d'AMP ne permet plus de garantir des délais d'exécution constants, faut-il recommander aux utilisateurs concernés de désactiver AMP ?

  • Si les ressources sont suffisantes, les workflows AMP et du moteur d'origine doivent être prévisibles (selon une nouvelle référence, au lieu de se limiter aux seuls résultats historiques des performances du moteur d'origine). L'imprévisibilité résulterait uniquement d'une sous-allocation de ressources matérielles d'un worker (moteur d'origine et AMP étant en concurrence pour les ressources).
Comment puis-je comparer un workflow de moteur d'origine à un workflow AMP pour m'assurer que les résultats sont identiques ?

Il est possible d'enregistrer le workflow sur Server avec AMP activé, puis d'en enregistrer une copie avec AMP désactivé. Exécutez ensuite plusieurs fois chaque workflow pour identifier le plus performant. Notez également que les workflows AMP ont tendance à s'exécuter plus rapidement lorsqu'ils sont exécutés en même temps que d'autres workflows AMP.

Problèmes liés à la qualité de service

Le moteur d'origine d'Alteryx utilise la mémoire différemment du moteur AMP. Comment la gestion de la mémoire fonctionne-t-elle avec les deux moteurs ensemble ?

L'option Engine Configuration Memory Limit s'applique au moteur, qu'il soit d'origine ou AMP. La différence réside dans la façon dont chaque moteur gère la limite de mémoire :

  • Le moteur d'origine préalloue la totalité de la limite.
  • Le moteur AMP alloue ce dont il a besoin jusqu'à la limite de mémoire. 
Pour les clients ayant mis en place plusieurs workers qui s'exécutent en parallèle pour optimiser l'utilisation des threads et des cœurs, pourquoi utiliser AMP s'ils disposent déjà de ressources largement suffisantes ; quel est l'intérêt d'activer AMP à ce stade ?

L'utilisation des ressources est plus efficace. Le moteur d'origine est multithread, mais pas hautement multithread. AMP est bien plus performant pour exécuter des tâches en série. Les avantages résident dans le débit total qui est plus élevé avec AMP qu'avec le moteur d'origine.

Alteryx dispose-t-il d'un gestionnaire de ressources ?

Server est désormais capable d'analyser votre matériel et d'allouer les ressources appropriées par moteur. Cette capacité n'est pas du même niveau que celle d'un gestionnaire de ressources de système d'exploitation. Néanmoins, grâce à cette nouvelle fonctionnalité, Server est maintenant capable de gérer vos ressources.

Comment le nombre de workers est-il augmenté ou diminué en fonction de la capacité ?

Si l'administrateur le configure, nous allouons automatiquement le nombre de tâches autorisées à s'exécuter simultanément en fonction des ressources matérielles disponibles. Pour plus d'informations sur la configuration des workers, reportez-vous à la page d'aide Worker

Cela risque-t-il de générer un conflit de ressources et un changement de processeur ? Si tel est le cas, cela a-t-il un impact négatif sur les performances ?

Non, les ressources sont allouées par tâche de moteur. Chaque tâche se voit allouer ses propres ressources. Cela signifie qu'il ne doit pas exister de conflit de ressources entre les tâches.

Cette page vous a-t-elle été utile ?

Vous rencontrez des problèmes avec votre produit Alteryx ? Visitez la communauté Alteryx ou contactez le  support. Vous n'arrivez pas à soumettre ce formulaire ? Envoyez-nous un e-mail.