Introduction de fonctionnalités d'auto-optimisation dans une architecture de selfbenchmarking
Auteur / Autrice : | El Hachemi Bendahmane |
Direction : | Patrice Moreaux, Bruno Dillenseger |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 25/09/2012 |
Etablissement(s) : | Grenoble |
Ecole(s) doctorale(s) : | École doctorale sciences et ingénierie des systèmes, de l'environnement et des organisations (Chambéry ; 2007-2021) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire d'informatique, systèmes, traitement de l'information et de la connaissance (Annecy) - Laboratoire d'Informatique- Systèmes- Traitement de l'Information et de la Connaissance |
Jury : | Président / Présidente : Didier Donsez |
Examinateurs / Examinatrices : Bruno Dillenseger, Thomas Begin, Laurent Broto | |
Rapporteur / Rapporteuse : Nihal Pekergin, Mikaël Salaün |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
Le Benchmarking des systèmes client-serveur implique des infrastructures techniques réparties complexes, dont la gestion nécessite une approche autonomique. Cette gestion s'appuie sur une suite d'étapes, observation, analyse et rétroaction, qui correspond au principe d'une boucle de contrôle autonome. Des travaux antérieurs dans le domaine du test de performances ont montré comment introduire des fonctionnalités de test autonome par le biais d'une injection de charge auto-régulée. L'objectif de cette thèse est de suivre cette démarche de calcul autonome (autonomic computing) en y introduisant des fonctionnalités d'optimisation autonome. On peut ainsi obtenir automatiquement des résultats de benchmarks fiables et comparables, mettant en oeuvre l'ensemble des étapes de self-benchmarking. Notre contribution est double. D'une part, nous proposons un algorithme original pour l'optimisation dans un contexte de test de performance, qui vise à diminuer le nombre de solutions potentielles à tester, moyennant une hypothèse sur la forme de la fonction qui lie la valeur des paramètres à la performance mesurée. Cet algorithme est indépendant du système à optimiser. Il manipule des paramètres entiers, dont les valeurs sont comprises dans un intervalle donné, avec une granularité de valeur donnée. D'autre part, nous montrons une approche architecturale à composants et une organisation du benchmark automatique en plusieurs boucles de contrôle autonomes (détection de saturation, injection de charge, calcul d'optimisation), coordonnées de manière faiblement couplée via un mode de communication asynchrone de type publication-souscription. Complétant un canevas logiciel à composants pour l'injection de charge auto-régulée, nous y ajoutons des composants pour reparamétrer et redémarrer automatiquement le système à optimiser.Deux séries d'expérimentations ont été menées pour valider notre dispositif d'auto-optimisation. La première série concerne une application web de type achat en ligne, déployée sur un serveur d'application JavaEE. La seconde série concerne une application à trois tiers effectifs (WEB, métier (EJB JOnAS) et base de données) clusterSample. Les trois tiers sont sur des machines physiques distinctes.