117 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal Séminaires de génie...

Post on 03-Apr-2015

117 views 7 download

Transcript of 117 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal Séminaires de génie...

117 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Séminaires de génie informatique

Linux Trace Toolkit Viewer, un outil d'analyse de systèmes informatiques pour la communauté du

logiciel libre.

217 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

● Présentation des contributeurs● Survol de la notion de traçage● Intérêt du traçage● Alternatives● Visées du projet● Défis● Communauté du logiciel libre● Outil de visualisation Linux Trace Toolkit

Viewer (LTTV)● Outil de traçage Linux Trace Toolkit Next

Generation (LTTng)

Linux Trace Toolkit Viewer

317 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Je me présente

● Mathieu Desnoyers● Curriculum

– Adaptation de LTT pour compression de traces (été 2002)

– Design et implantation de LTTV (étés 2003 et 2004)

– Diplôme B.ing. en G.I. en 2005– Maîtrise recherche en G.I. depuis janvier 2005

417 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Je me présente (suite)

● Champs d'intérêts en informatique● Architecture d'ordinateurs● Systèmes d'exploitation● Temps réel● Systèmes multiprocesseurs● Aspects algorithmiques● Sécurité● Systèmes tolérants aux fautes● Systèmes distribués

517 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Le projet et ses principaux contributeurs

● Linux Trace Toolkit Viewer (LTTV)– École Polytechnique, génie informatique (G.I.)

● Michel Dagenais, professeur au département de G.I.● Mathieu Desnoyers, étudiant de maîtrise en G.I.

● Linux Trace Toolkit Next Generation (LTTng)– Mathieu Desnoyers

● RelayFS– Tom Zanussi, IBM– Karim Yaghmour, Opersys

● Linux Trace Toolkit (LTT)– Karim Yaghmour, Opersys

617 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Survol : traçage

Système

717 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Survol (suite)

boîte noire

traceur

traçage

Enregistrement de

l'activité du système

sous forme d'événemen

ts

Matériel, système d'exploitation, processus (librairies et programmes)

Analyse et visualisation a posteriori

Système

817 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Intérêt du traçage

● Extraire de l'information sur le comportement– d'un système

● Programme– processus unique– processus multiples

● Librairie● Système d'exploitation

– Programmation temps-réel● Traitement parallèle par mémoire partagée

– de plusieurs systèmes● Traitement parallèle par passage de messages● Systèmes distribués

917 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Aide au développement

● Utile à plusieurs étapes du développement– Aide au design

● Compréhension du système d'exploitation– Validation– Test

1017 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Alternatives● Propriétaires

– Windriver Tornado (VxWorks)– IrixView (Irix)

● Open source– Sun Dtrace (Solaris 10)

● Libres– Linux Trace Toolkit (Linux)

● monolithique : ajout de points de traçage difficile● instrumentation statique

– Redhat/IBM/Intel SystemTAP (Linux)● en développement● instrumentation ad hoc (kprobes et djprobes)● pas d'outil de visualisation pour le moment

1117 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Visées du projet

● secteur académique– aider la compréhension du système

d'exploitation– permettre son exploration

● génie informatique– optimisation et déverminage de librairies

● librairies de traitement parallèle (MPI, OpenMP)● librairie de processus légers (pthreads)

● entreprise– outil d'aide à l'optimisation et au déverminage

● synchronisation, latence, temps réel● ordinateurs de haute performance● ordinateurs à multiples processeurs

1217 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

IBM Blue Gene

Installation du superordinateur Blue Gene/L. Cet ordinateur, le plus rapide au monde, était en préparation pour son annonce officielle le 27 octobre 2005.

Crédits: Lawrence Livermore National Laboratory

1317 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Autodesk

Suite d'outils graphiques d'autodesk tel que Discreet FireSmoke.

Image courtoisie de Northern Light Posts

1417 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Communauté du logiciel libre

● Cycle de développement différent– Les logiciels les plus amusants à développer

susciteront un plus grand intérêt chez les programmeurs particuliers.

– Les entreprises voient à fournir les ressources financières en formant des groupes de travail regroupant des expertises variées

● SystemTAP : IBM/Intel/Redhat● Progression actuelle vers des tests accrus

du noyau Linux avant la relâche

1517 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Communauté du logiciel libre (suite)

● Les utilisateurs sont bien souvent des testeurs

● Les développeurs : organisation horizontale– entreprises– organismes– gouvernements– universités– chercheurs– étudiants– particuliers

1617 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

LTTV et le logiciel libre

● LTTV et LTTng sont distribués sous la General Public licence (GPL)

● Favoriser les contributions– architecture du projet modulaire– prévoir la réutilisation

1717 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Défis de la visualisation

● Visualisation– taille des données recueillies (de l'ordre du giga-

octet)– fusion de traces

● multiprocesseurs● à plusieurs noeuds

– parcours des données● séquentiel● accès par saut● parcours à rebours

– présentation visuelle avec filtre

1817 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Outil de visualisation LTTV

● mode texte de traitement par lots● mode graphique (GTK)

– liste d'événements avec filtre● parcours à rebours

– vue de l'ordonnancement– statistiques– synchronisation de temps entre les vues– accès par saut

● précalcul de l'état

Voir démonstration

1917 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Lecture de traces

● librairie de lecture de traces– queue de priorité

● taille des traces de l'ordre de quelques giga-octets– fusion des traces en cours de lecture du disque– notion d'état en cours de lecture– statistiques

2017 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Défis du traçage

● précision de la mesure de temps● format de données extensible● performance

– limiter la contention– gestion de la concurrence à faible coût

● écriture concurrente– Dans le noyau– En mode usager

2117 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Outil de traçage LTTng

● Linux Trace Toolkit Next Generation● Architecture modulaire

– intrumentation– traçage

● module de traçage (ltt-core)● RelayFS● « daemon » d'écriture de canaux RelayFS sur disque

– contrôle● module de contrôle du traçage (ltt-control)● librairie de contrôle (liblttctl)● programme de contrôle (lttctl)

2217 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Précision du temps

● Base de temps : compteur de cycles.● L'important : avoir une base de temps dont

l'incrémentation est monotone– Ne pas utiliser un temps corrigé par NTP

● Précision : tout est relatif !– Synchronisation entre les processeurs sur un

nœud– Synchronisation de traces entre les noeuds d'un

réseau (traitement parallèle et distribué)● Éric Clément

2317 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Précision : tout est relatif!

● Sur un même processeur ~100 ns/s● Erreurs d'arrondis ~100 ppm (100 ns/s)

(arch/i386/kernel/timers/common.c:init_cpu_khz())● 1.0 Ghz = 1 cycle/ns.

● Sur plusieurs processeurs– Erreurs d'échantillonage de la vitesse du CPU

au démarrage● Variation de la fréquence avec la température

– Hicham Marouani● Délai de cache entre les cpu

(arch/i386/kernel/smpboot.c:synchronize_tsc_bp())● Imprécision entre les horloges et le

processeur.

2417 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Format de données extensible

● événement– enregistrement correspondant à une action du

système– contient des champs de données

● facility– groupe d'événements chargeable

dynamiquement

2517 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Champs de données

● Champs décrits sous un format XML● genevent

– génération automatisée du code de traçage à partir de la description des champs

● LTTV– affichage générique des événements selon la

description des champs

2617 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Types de données

● Indépendants du compilateur et de l'architecture

● Support pour l'alignement● Types étendus disponibles :

– types simples● taille variable selon l'architecture● taille fixe

– énumérations– types composés

● structures et unions● tableaux, séquences, strings

● Compatibles avec le langage C via genevent

2717 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Écriture concurrente noyau

● En mode noyau– Multiprocesseurs

● verrou « spin lock » ?● tampon par processeur

– À même un processeur● interruptions masquables

– désactiver les interruptions ?● interruptions non-masquables

– exceptions– trappes– fautes– i.e. fautes de pages, NMI, « spurious interrupts », division

par zéro, ...● écriture sans verrou

2817 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Écriture concurrente usager

● pas d'appel système possible– trop coûteux (tests sur Pentium 4 3GHz)

● appel système : ~4000ns● écriture directe : ~227ns● donc pas de nouvel appel système, ni de write, ni de

ioctl, ni de communication par socket, etc.

2917 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

Écriture concurrente usager (suite)

● Processus– un tampon par processus ?

● nécessiterait un mutex : contention– boucle active– appel à l'ordonnanceur

● Threads– un tampon par thread

● Signaux– désactiver les signaux pendant l'écriture ?– écriture sans verrou

3017 novembre, 2005 Mathieu Desnoyers, École Polytechnique de Montréal

LTTV et LTTng

● disponibles à l'adresse :– http://ltt.polymtl.ca/

● sera sous peu la prochaine version « stable » de LTT.– liste de diffusion ltt-dev@shafik.org

● Des questions ?