Instrumentalisez votre Linux avec System Tap

Abonnements, magazines... Notre catalogue complet au bas de cette page.

Vous souhaitez savoir ce qui se passe dans les entrailles de votre Linux. Est-ce qu'une carte réseau est active ? Quel processus communique à travers elle ? Quels sont les appels système les plus sollicités à un moment donné ? SystemTap permet de répondre à ces questions et bien plus. Prise en main.

Savoir exactement ce qui se passe au sein d'un système concerne à la fois l'administrateur et le développeur. Obtenir l'information est difficile et les besoins sont innombrables. L'administrateur peut avoir besoin de déterminer quelle application présente une fuite mémoire qui effondre le système ou consomme trop de ressources CPU. Le développeur peut avoir besoin de savoir si une fonction particulière de son code est invoquée. Et si oui, dans quel contexte ? Quelle est la pile des appels ? Pour répondre à ces questions, l'administrateur dispose de commandes système. Par exemple, pour la consommation mémoire, il pourra utiliser slabtop ou ps. Mais ces commandes, pour puissantes qu’elles soient, trouvent assez vite leurs limites. Ainsi slabtop ne fournit pas le détail des allocations mémoire pour une application. Top vous montrera qu'une application dévore tout le temps CPU, mais ne vous dira pas quelle est la partie de l'application qui est en cause. Est-ce les opérations d'écriture sur le disque ? L'activité réseau ? Top ne vous renseigne pas. Le développeur n'a pas, lui non plus, beaucoup d'outils à sa disposition. Il y a le fameux débogueur, mais les points d'arrêts gèlent l'exécution et faussent l'observation qui est rarement en rapport avec les conditions d'exécution normales. Pour contourner ce problème, le développeur a recours à une technique d'instrumentalisation : insérer dans son code des instructions qui informent de l'activité en écrivant sur le terminal ou dans un fichier de log. Cette technique d'instrumentalisation, nous l'avons tous pratiquée à outrance, et nous en connaissons les limites et les inconvénients. Par exemple, qu'il faut recompiler l'application à chaque insertion d'une instruction, et une fois la phase de mise au point terminée, il faudra toutes les retirer, puis recompiler. Et comme certaines instructions auront été oubliées, il faudra à nouveau reprendre le code puis le recompiler. Et nous nous estimerons heureux si ces instructions n'induisent pas des problèmes subtils, par exemple dans les applications en temps réel. Cette approche du travail, si elle reste extrêmement courante, relève de la préhistoire. C'est ici qu'entre en scène SystemTap pour apporter des réponses pertinentes à ces questions, d'une manière similaire à ce que fait le très célèbre et remarquable DTrace sous Solaris

Frédéric Mazué

S'ABONNER
Egalement au sommaire de :
Programmez! #156