Qu’est ce que l’ordonnancement ?

Planifier un traitement

La planification d’un traitement permet de lancer une commande à une date et à une heure données. Elle correspond donc à la première condition de l’ordonnancement.

Définir la date

La date peut être définie de différentes manières suivant les ordonnanceurs mais on retrouve communément la possibilité :

- de spécifier des jours de la semaine
- d’indiquer des jours spécifiques dans l’année
- de calculer des jours fériés en fonction d’un calendrier
- d’utiliser des règles de calcul (Ex : 3ème Jeudi du mois)

Définir les heures

Pour les heures, on peut aussi bien définir une heure particulière qu’une fréquence afin d’exécuter des traitements cycliques.

Conditionner le lancement

Le réel intérêt de l’ordonnancement est la mise en place de conditions qui vont permettre de réguler la production.

Statuts de jobs

Une condition de dépendance sur une statut de job var permettre de définir une séquence en fonction des statuts des prédécesseurs.

#(images/sequence.png)# Cet exemple présente une séquence de 2 jobs dépendant d’un job A. Si le job A se termine correctement, le job B démarre. En cas de problème sur A, c’est le job C qui est soumis. Le chemin en rouge est un "chemin dégradé".

Certains ordonnanceurs permettent de réaliser une liaison plus fine en utilisant l’exit code du traitement.

Contrôle des ressources

L’ordonnanceur doit être capable d’effectuer le minimum de vérification sur les ressources de la machine avant la soumission du traitement. Le minimum à vérifier étant l’espace disque.

Conditionnements avancés

Ces conditionnements ne sont pas pris en compte par tous les ordonnanceurs.

Action opérateur

Lorsque certaines actions ne peuvent pas être automatisées, on a recours à une intervention humaine. Le traitement attend qu’un opérateur ait validé le lancement pour démarrer.

Variables

Il peut être possible de conditionner des traitement en fonction de variables, cela permet d’agir sur le démarrage en modifiant une variable.

Centraliser les traitements

Réferentiel

Le simple fait de définir les traitements, les comptes de soumission et les machines utilisées mais aussi et surtout les liens entre les applications font de l’ordonnanceur un référentiel de premier niveau.

Maitrise des actions

L’opérateur peut agir sur les traitements ou les séquence de traitements à partir d’un point unique. On rencontre couramment les actions suivantes :

- soumettre un traitement
- killer un traitement en cours
- bloquer/libérer un lancement
- bloquer/libérer une séquence

En parallèle de ces actions il est possible de modifier les paramètres du traitements.

Diagnostic simplifié

Les traitements étant centralisés, les journaux des traitements sont directement accessibles. En cas d’incident l’ensemble des informations peut être récupéré et évalué par la personne en charge du diagnostic.

Gestion des files d’attente

Le job peut être soumis directement sur la machine ou dans une file d’attente, cette deuxième méthode permettant de gérer les priorités de lancement entre des traitements soumis à la même heure.

La notion de ressources et totalement virtuelle et peut représenter :
- une connexion (FTP, base de données)
- une ressource de la machine (CPU, mémoire...)

Ressources disponibles

#(images/file.png)# Une file d’attente peut être visualisé par un tuyaux dans lequel on peut insérer paralellement un certain nombre de jetons. Dans l’exemple ci-contre, nous avons défini une file d’attente pouvant accepter 3 jetons simultanément. 3 jobs A,B et C peuvent être soumis, on leur a affecter respectivement 2, 3 et 1 jetons.

Ces jobs pourront être soumis à la même heure puisque la régulation se fera dans la file d’attente.

Gestion des exécutions

#(images/file2.png)# Au moment de la soumission des ces 3 jobs, la régulation a pu être la suivante :

la file d’attente dispose de 3 jetons
- le job A est soumis et exécuté, il consomme 2 jetons
- La file d’attente n’a plus qu’un seul jeton
- le job B est soumis mais reste en attente d’exécution car il nécessite 3 jetons
- le job C est soumis, il ne requiert qu’un jeton, il est donc exécuté
- à la fin des exécutions, les ressources se libèrent et on dispose à nouveau de 3 jetons
- le job B est alors exécuté

Gestion des priorités

Pour réguler une file d’attente on utilise la gestion des priorités. Dans l’exemple précédent, on spécifie une priorité supérieure au job B afin qu’il soit mis en file d’attente en première position.

Audit et sécurité

Etat des traitements

Toutes les informations d’exécution des traitements sont conservées, il est donc possible de connaître pour chacun des traitements :

- l’heure de lancement
- la durée d’exécution
- les traces
- le statut
- éventuellement l’exit code

Audit

Toute modification et toute action est journalisée, ce qui permet de suivre le traitement mais aussi les actions mis en oeuvre que ce soit après l’incident mais aussi avant.

Sécurité

Les intervenants doivent disposer d’un compte leur permettant d’accéder à l’outil en fonction de leur rôle. Il est donc possible de donner des accès privilégiés aux intervenants directs tout en laissant libre la visualisation des traitements pour les équipes applicatives.

Gestion des incidents

Toute alerte est remontée sur la console et renvoyée vers une console de supervision.

Article

> Ordonnancement

L’ordonnancement est la fonction d’exploitation qui gère les planifications de traitements informatique. Son rôle principal est la soumission de batchs, ou de séquence de batchs, à heures définies lorsque l’ensemble des conditions sont remplies. Ces conditions sont généralement des critères de dates, de statuts de prédécesseurs...

Mise à jour :12 septembre 2005
Visites : 16207
Auteur : E. Angenault
Site : Angenault.net

Tout ce qu’il faut savoir pour ordonnancer ses traitements informatiques. Vous trouverez toutes les informations à partir du choix de l’ordonnanceur à travers un comparatif détaillé jusqu’à l’exploitation quotidienne de l’environnement de production.

Liens commerciaux

Accès rapide