Configurer l'exécution distribuée

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Exécution distribuée et équilibrage de la charge >

Configurer l'exécution distribuée

Le concept des queues d'exécution se trouve au cœur de l'exécution distribuée.

 

Une queue d'exécution est un "processeur" de tâches ; elle contrôle comment les instances de tâche sont exécutées. Pour pouvoir être exécutées, chaque tâche se voit attribuer une queue d'exécution cible. Vous pouvez attribuer une tâche à une queue d'exécution tout en configurant la tâche, et elle sera soumise à cette queue d'exécution lors de la marche. La queue contrôle combien d'instances de tâche (de toutes les tâches attribuées à la queue) peuvent être exécutées en une fois, le retard entre les exécutions et d'autres paramètres. Les queues peuvent être locales à la tâche, ou partagées par plusieurs tâches. Lorsque plusieurs tâches sont attribuées à la même queue d'exécution, elles partageront cette queue pour l'exécution.La queue contrôle combien d'instances de tâche peuvent être exécutées en une fois, le retard entre les exécutions.

 

Les queues partagées fournissent un mécanisme flexible pour contrôler la charge de serveur soit sur un appareil FlowForce unique, soit lorsque plusieurs instances FlowForce Server 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 queue 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 queue. Par exemple, vous pouvez configurer qu'une queue 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 queue 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 queue retournera au maître.
3.Éditer la configuration de chaque tâche et attribuer la tâche dans la queue personnalisée créée précédemment.

 

Créer des queues

Les queues profitent du même mécanisme d'accès de sécurité que d'autres objets de configuration FlowForce Server. Concrètement, un utilisateur doit détenir le privilège "Définir queues d'exécution" pour pouvoir créer des queues, voir Comment fonctionnent les privilèges. De plus, les utilisateurs peuvent consulter des queues, ou attribuer des tâches à des queues, uniquement si elles détiennent les permissions de conteneur appropriées (pas le même que les privilèges), voir Comment fonctionnent les privilèges. Par défaut, tout utilisateur authentifié obtient la permission "Queue - Utiliser" ce qui signifie qu'ils peuvent attribuer des tâches à des queues. Pour limiter l'accès aux queues, se rendre dans le conteneur où la queue est définie, et changer la permission du conteneur sur "Queue - Aucun accès" pour le rôle authentifié. Ensuite, attribuer la permission "Queue - Utiliser" à tout rôle spécifique ou à tout utilisateur que vous souhaitez. Pour plus d'informations, voir Limiter l'accès au conteneur/public.

 

 

Pour créer une queue :

1.Cliquer sur Configuration, puis naviguer vers le conteneur sur lequel vous souhaitez créer la queue.
2.Cliquer sur Créer, puis sur Créer Queue.

ff_create_queue

3.Saisir un nom de queue, et, en option, une description. Pour consulter des références à d'autres paramètres, voir "Paramètres de queue" ci-dessous.
4.Cliquer sur Enregistrer.

 

Paramètres de queue

Les paramètres disponibles pour la configuration dans une queue sont regroupés ci-dessous.

 

Exécuter sur

Spécifie comment toutes les instances de tâche depuis cette queue doivent être exécutées :

 

maître ou un travailleur - Instances de tâche qui font partie de cette queue seront exécutées sans distinction sur des appareils maître ou travailleur, selon les cœurs de serveur disponibles.
maître uniquement - Instances de tâche qui seront exécutées uniquement sur l'appareil maître.
tout travailleur uniquement - Instances de tâche qui seront exécutées sur tout travailleur disponible mais jamais sur le maître.

Intervalle minimum entre les cycles

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.

Nombre maximum de cycles parallèles

Cette option définit le nombre de fois que la même tâche peut être exécutée en parallèle sur le serveur.

 

Un traitement en parallèle dépend du nombre de cœurs de serveur disponibles sur FlowForce Server. Par exemple, si vous définissez cette valeur sur 12 et que seuls deux cœurs de serveur sont mis sous licence, 12 tâches apparaîtront en exécution parallèle ; néanmoins, seules deux tâches afficheront une progression à tout moment.

 

Vous pouvez définir plusieurs ensembles de paramètres de queue, chacun possédant des exigences de traitement différentes, en cliquant sur la touche add. Pour modifier la priorité d'un ensemble spécifique de paramètres (appelons cet ensemble "règle"), cliquer sur les touches Déplacer vers le haut up_arrow ou Déplacer vers le bas down_arrow. Par exemple, vous pouvez définir une règle pour le cas où seul le maître est disponible, et une autre règle pour le cas où le maître et les travailleurs sont tous deux disponibles. Cela vous permet de créer un mécanisme de secours pour la queue, selon l'état du cluster à un moment donné. Lors du traitement des queues, FlowForce Server contrôle en permanence l'état du cluster et "sait" si des travailleurs ne sont pas disponibles. Ainsi, si vous avez défini plusieurs règles de paramètres de queue, FlowForce Server les évalue dans l'ordre défini, de haut en bas, et choisit la première règle qui a au moins un membre de cluster attribué conformément à "exécuter".

 

En guise d'exemple, imaginons une configuration où le cluster contient un appareil maître et quatre appareils travailleurs. Les paramètres de queue sont définis comme indiqués ci-dessous:

ff_queue_settings

Avec la configuration illustrée ci-dessus, FlowForce traitera la queue comme suit, selon l'état actuel du cluster :

 

Si tous les travailleurs sont disponibles, la première règle sera appliquée. Jusqu'à 16 instances de tâche peuvent être exécutées simultanément (4 instances pour chaque travailleur). Le temps minimum entre les cycles est de 0 secondes.
Si uniquement trois travailleurs sont disponibles, la première règle sera appliquée. Jusqu'à 12 instances de tâche peuvent être exécutées simultanément, et le temps minimum entre les cycles est de 0 secondes.
Si aucun travailleur n'est disponible, la deuxième règle sera appliquée. Jusqu'à 1 instance pourra être exécutée simultanément, et le temps minimum entre les cycles est de 5 secondes.

 

Ce type de configuration rend l'exécution possible en l'absence de travailleurs. Veuillez noter que la règle "maître uniquement" est un peu plus stricte (1 seule instance, et 5 secondes de retard entre les cycles) pour ne pas ôter trop de puissance de traitement de l'appareil maître si tous les travailleurs échouent.

 

Attribuer des tâches dans des queues

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

ff_assign_queue

Note :Si vous avez sélectionné Définir queue locale, FlowForce Server attribuera, 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 Queue. Les queues locales ne prennent pas en charge le traitement distribué. La queue doit être créée en autonomie (extérieurement à la tâche) afin de pouvoir profiter du traitement distribué.

© 2019 Altova GmbH