Altova FlowForce Server 2024 Advanced Edition

Configurer Exécution distribuée

Accueil Préc Haut Suivant

Au cœur de l’exécution diffusée réside le concept des files d'attente de l’exécution.

 

An execution queue is a "processor" of jobs; it controls how job instances run. In order to run, every job instance is assigned to a target execution queue. The queue controls how many job instances (of all the jobs assigned to the queue) can be running at any one time and the delay between runs. By default, the queue settings are local to the job, but you can also define queues as standalone objects shared by multiple jobs. When multiple jobs are assigned to the same execution queue, they will share that queue for executing.

 

Queues benefit from the same security access mechanism as other FlowForce Server configuration objects. Namely, a user must have the "Define execution queues" privilege in order to create queues, see also How Privileges Work. In addition, users can view queues, or assign jobs to queues, only if they have appropriate container permissions (not the same as privileges), see also How Permissions Work. By default, any authenticated user gets the "Queue - Use" permission, which means they can assign jobs to queues. To restrict access to queues, navigate to the container where the queue is defined, and change the permission of the container to "Queue - No access" for the role authenticated. Next, assign the permission "Queue - Use" to any specific roles or users that you need. For more information, see Restricting Access to the /public Container.

 

Les files d’attente partagées fournissent un mécanisme flexible pour contrôler la charge du serveur soit sur un appareil unique FlowForce, ou quand des instances de serveur FlowForce Server multiples sont exécutées en tant que cluster. La configuration de l'équilibre de la charge est un processus en plusieurs étapes :

 

1.Tout d'abord, vous créez une file d’attente depuis une page spéciale, comme lorsque vous créez d'autres données de configuration FlowForce, comme par exemple des identifiants ou des tâches.

2.Vous devez définir ses paramètres de traitement pour chaque file d’attente. Par exemple, vous pouvez configurer qu'une file d’attente soit uniquement exécutée sur le maître, uniquement sur les travailleurs ou sur les deux. Il est aussi possible de définir des critères de secours de base. Par exemple, une file d’attente peut être configurée pour être exécutée par défaut sur le maître et tous ses travailleurs ; néanmoins, si tous les travailleurs deviennent indisponibles, la file d’attente retournera au maître.

3.Éditer la configuration de chaque tâche et attribuer la tâche dans la file d’attente personnalisée créée précédemment.

 

Note :les clusters inter-systèmes ne sont pas pris en charge, ce qui signifie qu’une connexion travailleur-maître ne peut pas être établie entre les différentes plateformes OS (par ex., entre Linux et Windows).

 

Créer la file d’attente

Pour créer une file d’attente comme objet autonome :

 

1.Cliquez sur Configuration, puis naviguez vers le conteneur où vous souhaitez créer la file d’attente.

2.Cliquez sur Créer, puis sur Créer file d’attente.

ff_create_queue

3.Saisissez un nom pour la file d'attente et, en option, une description. Pour la référence de tous les paramètres, voir « Paramètres de la file d’attente » ci-dessous.

4.Cliquez sur Enregistrer.

 

Paramètres de la file d’attente

Les paramètres disponibles pour configurer en file d’attente sont recensés ci-dessous.

 

Nom de la file d’attente

Saisissez un nom qui identifie la file d’attente. Il s’agit d’un champ obligatoire et ne doit pas commencer ou se terminer avec des espaces. Aussi, il ne peut contenir que des lettres, chiffres, espaces simples, et les caractères underscore ("_"), tiret ("-"), et point (".").

 

Ce champ s’applique uniquement si la file d’attente est définie comme autonome (et non locale).

Description de la file d’attente

En option, saisissez une description pour l’objet de la file d’attente.

 

Ce champ s’applique uniquement si la file d’attente est définie comme autonome (et non locale).

Exécuter

Spécifie comment toutes les instances de tâches de cette file d’attente doivent être exécutées :

 

master ou tout worker - les instances de tâches qui font partie de cette file d’attente seront exécutées sans discernement sur les appareils master ou worker, dépendant des noyaux du serveur disponibles.

master uniquement - les instances de tâches seront exécutées uniquement sur l’appareil master.

tout worker uniquement - les instances de tâches seront exécutées sur tout worker disponible mais jamais sur le master.

Temps minimum entre les exécutions

Une queue d'exécution fournit des créneaux d'exécution, où le nombre de créneaux disponibles est géré par le paramètre "instances parallèles maximum " multiplié par le nombre de travailleurs attribués conformément à la règle active actuellement. Chaque créneau exécutera des instances de tâche par séquence.

 

Le paramètre "Temps minimum entre les marches" conserve un créneau marqué en tant qu'occupé pour une période de temps brève une fois qu'une instance de tâche s'est terminée, ce qui a pour conséquence qu'il ne choisira pas l'instance de tâche suivante immédiatement. Cela réduit le débit maximum pour cette queue d'exécution, mais fournit un temps de CPU pour d'autres queues d'exécution et d'autres processus sur le même appareil.

Exécutions parallèles maximum

Cette option définit le nombre d’exécutions de slots d’exécutions disponibles dans une file d’attente. Chaque créneau exécute des instances de tâche de manière séquentielle, donc le paramètre détermine combien d’instances de la même tâche peuvent être exécutées en parallèle dans la file d’attente actuelle. Notez, toutefois, que le nombre d’instances auxquelles vous donnez l’autorisation d’être exécutées en parallèle sera en concurrence avec les ressources d’appareils disponibles. Augmenter cette valeur pourrait être acceptable pour les files d’attente qui traitent les tâches « lightweight » qui n’exécutent pas d’opérations intensives I/O ou ont besoin d’un temps CPU significatif. Le paramètre par défaut 1 est le plus conservatif et est adapté pour les files d’attente qui traitent les tâches intensives en ressources (pour assurer que seule une des instances de tâche « heavyweight » est traitée à la fois).

 

Cette option n’affecte pas le nombre de requêtes HTTP parallèles maximum acceptées par FlowForce Server (comme celles des clients qui invoquent les tâches exposées comme services Web). Pour les détails, voir Reconfigurer les pool threads FlowForce Server.

 

Vous pouvez définir des ensembles multiples de paramètres de la file d’attente, chacun avec des exigences de traitement différentes, en cliquant sur le bouton add. Pour changer la priorité d’un ensemble spécifique de paramètres (appelons-le « règle »), cliquez sur les boutons Move up up_arrow ou Move down down_arrow. Par exemple, vous pouvez définir une règle dans le cas où un maître est disponible, et une autre règle dans le cas où les maîtres et les travailleurs sont disponibles. Ceci vous permet de créer un mécanisme de secours pour une file d’attente, dépendant de l’état du cluster à un moment donné. Lorsque FlowForce Server traite les files d’attente, le serveur surveille sans cesse l’état du cluster et « sait » si un travailleur n’est pas disponible. Donc, si vous avez défini des règles pour les paramètres de la file d’attente multiples, FlowForce Server les évalue selon l’ordre défini, du haut vers le bas, et prend la première règle qui a au moins un membre cluster assigné à « exécuter ».

 

En guise d’exemple, jetons un œil sur une configuration où le cluster inclut un appareil maître et quatre appareils travailleurs. Les paramètres de la file d’attente sont définis tels que ci-dessous :

ff_queue_settings

Avec la configuration illustrée ci-dessus, FlowForce traiterait la file d'attente comme suit, dépendant de l’état actuel du cluster :

 

Si tous les travailleurs sont disponibles, la règle supérieure correspond et sera appliquée. Notamment, 16 instances de tâches sont permises pour l'exécution simultanée (4 instances pour chaque travailleur). Le temps minimum entre les exécutions est de 0 secondes.

Si uniquement trois travailleurs sont disponibles, la règle supérieure correspond toujours. Notamment, jusqu’à 12 instances de tâche sont permises pour l’exécution simultanée, et le temps minimum entre les exécutions est de 0 secondes.

Si aucun travailleur n’est disponible, la deuxième règle correspond et sera appliquée. Notamment, jusqu’à 1 instance de tâche est permise pour l’exécution simultanée, et le temps minimum entre les exécutions est de 5 secondes.

 

Ce type d’exécution rend l’exécution encore possible en l’absence de travailleurs. Veuillez noter que la règle « uniquement maître » est plus stricte (1 instance seulement, et 5 secondes de délai entre les exécutions), de manière à ne pas retirer trop de puissance de traitement depuis l’appareil maître lorsque tous les travailleurs échouent.

 

Attribuer des tâches dans des files d’attente

Une fois que vous avez configuré la file d'attente, l'étape suivante est d'éditer la configuration de chaque tâche que vous souhaitez attribuer à cette file d’attente Vous trouverez les paramètres de queue dans la page de configuration de la tâche, dans le groupe « Paramètres de file d’attente »

ff_assign_queue
Note :si vous avez sélectionné Définir file d’attente locale, FlowForce Server lors de l'exécution de la tâche, des instances de cette tâche dans une queue par défaut, avec les paramètres locaux que vous souhaitez spécifier, voir aussi Définir les paramètres de la file d’attente. Les files d’attente locales ne prennent pas en charge le traitement distribué. La file d'attente doit être créée en autonomie (extérieurement à la tâche) afin de pouvoir profiter du traitement distribué.

© 2017-2023 Altova GmbH