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

30
1 17 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.

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

Page 1: 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.

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.

Page 2: 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.

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

Page 3: 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.

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

Page 4: 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.

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

Page 5: 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.

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

Page 6: 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.

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

Survol : traçage

Système

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

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

Page 8: 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.

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

Page 9: 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.

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

Page 10: 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.

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

Page 11: 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.

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

Page 12: 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.

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

Page 13: 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.

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

Page 14: 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.

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

Page 15: 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.

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

Page 16: 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.

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

Page 17: 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.

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

Page 18: 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.

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

Page 19: 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.

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

Page 20: 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.

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

Page 21: 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.

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)

Page 22: 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.

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

Page 23: 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.

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.

Page 24: 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.

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

Page 25: 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.

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

Page 26: 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.

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

Page 27: 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.

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

Page 28: 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.

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.

Page 29: 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.

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

Page 30: 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.

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 [email protected]

● Des questions ?