EuroBSDCon 2011 – Day 2 – DTrace

bsd2011logo

2ème jour de l’euroBSDCon 2011 … Au programme : DTrace

DTrace

La présentation est faite par Tod McQuillin, fondateur d’un des plus gros FAI aux états-unisn Telerama. Tod travaille avec BSD depuis 1988, FreeBSD depuis 1993, et Solaris depuis 1995. Outre ses compétences “système”, il maîtrise parfaitement la programmation Perl, C et SQL. La présentation était orientée “FreeBSD”

Les pré-requis

Quelques jours avant la convention, Tod nous avait demandé de construire un noyau FreeBSD intégrant les modules DTrace, ainsi que de recompiler le système avec des options précises, de manière à pouvoir tester en direct les exemples montrés en cours et faire les quelques exercices proposés. Une sérieuse connaissance des composants et fonctionnalités du noyau FreeBSD était bien sûr fort utile.

Les points abordés

Au cours de la présentation, nous avons abordés les points suivants :

  • Introduction à DTrace : histoire, licence, disponibilité, etc ..
  • Structure de DTrace : les notions de providers, probes et consumers, la syntaxe, etc
  • Le langage D : écriture de script, etc
  • Exercices

Une petite conclusion

J’aurais personnellement eu du mal à me mettre à DTrace, qui fait beaucoup parler depuis sa conception par SUN. Ce cours (plutôt une introduction tellement DTrace semble puissant !) a permis de faire le premier pas : DTrace est totalement fantastique !

Il s’agit donc d’un outil de supervision système, qui permet de surveiller en direct les différents processus tournant sur un système FreeBSD : les appels systèmes (syscall), les I/O, etc .. le code exécuté par un process OU/ET par le noyau ! est modifié en direct, dynamiquement, à l’exécution pour permettre de tracer certains comportements. C’est totalement bluffant. A titre d’exemple un peu inutile, les exercices proposés m’ont permis de remarquer que ma config CONKY entraînait un nombre important d’appels syscall en échec. Une petite correction, et c’est déjà moins d’erreurs ;-)

Un des exercices étaient par exemple de donner pour tous les appels syscall en échec, le nom du programme ayant fait l’appel, le nom du syscall, et le numéro d’erreur. Impossible à faire sans DTrace. DTrace permet de faire ce type de traçage, même sur un système en production !!

 

Je pense faire rapidement un petit HOW-TO simple avec quelques exemples pour se lancer dans DTrace. En voici déjà quelques-un sur le wiki de FreeBSD : http://wiki.freebsd.org/DTrace/Examples

Des ressources complémentaires

Le guide de chez solaris, indispensable

Le User Guide, toujours chez solaris

Le blog de Brendan Gregg, auteur DU livre sur DTrace

 

PS : si vous souhaitez les slides du cours en PDF, contactez moi via mon site.

 

 

Vus : 1531
Publié par OsEr : 15