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
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 : | 12333 |
| 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.
