Configurer SystemTap avec Oracle EL et Ubuntu

SystemTap permet de manipuler un nombre important de probes de votre noyau Linux. C’est un outil fantastique pour superviser les performances de vos serveurs et diagnostiquer vos problèmes rapidement. La liste de ces indicateurs est disponible dans la section man stapprobes.

Ainsi si vous êtes un utilisateur averti d’Oracle sous Linux, vous serez étonné de ce que vous pouvez faire avec SystemTap pour identifier vos problèmes et, par exemple, classer vos processus par « Top IO » ou « Top Network »

Installer SystemTap sur OEL 5

Installer SystemTap sur OEL 5.5 ou 5.6 est très simple. La procédure est logiquement la même sur RHEL, CentOS ou Fedora :

yum install systemtap systemtap-sdt-devel 
systemtap-runtime kernel-debuginfo

Installer SystemTap sur Ubuntu Maverick Meerkat (10.10)

Installer SystemTap sur Ubuntu est un peu plus délicat ; les sections ci-dessous reprennent les principales étapes :

Télécharger la liste des symboles de votre noyau

Pour commencer, vous devrez télécharger le package debian qui contient la liste des symboles de votre noyau et l’installer. Pour cela, vérifiez la version de votre noyau :

sudo apt-cache show linux-image-`uname -r` 
|grep -e "Version" -e "Filename"
Version: 2.6.35-28.49
Filename: pool/main/l/linux/linux-image-2.6.35-28-generic-pae_2.6.35-28.49_i386.deb

Naviguez ensuite à l’URL suivante et téléchargez la version précise correspondant à votre noyau. Vous pourrez ensuite l’installer à l’aide de la commande dpkg comme ci-dessous :

sudo dpkg -i linux-image-2.6.35-28-generic-pae-dbgsym_2.6.35-28.49_i386.ddeb

Installez les packages SystemTap

Installez ensuite les packages correspondant à SystemTap à partir d’un repository Ubuntu comme ci-dessous :

sudo apt-get install systemtap 
systemtap-std-dev systemtap-runtime

Note:
Pour en savoir plus sur l’utilisation de SystemTap et Ubuntu, regardez cette URL

Tester SystemTap

Une fois vos packages installés, vous pouvez tester SystemTap ; créez un fichier x.stp avec, par exemple, le script disponible à cette URL qui affiche les utilisateurs faisant le plus d’I/O ou le script disponible à cette URL qui affiche les processus faisant le plus d’I/O. Lancez ensuite le fichier avec la commande stap comme ci-dessous :

sudo stap x.stp

User ID KB Read KB Written
1000 16857 1
0 4688 0
1001 258 146

User ID KB Read KB Written
1000 17300 1
0 4802 0
1001 83 82
110 0 0

Vous pouvez également éviter de lancer la commande sous l’utilisateur root en ajoutant votre utilisateur au groupe stapdev.

Si vous êtes un utilisateur de MySQL, vous trouverez sur Youtube.com une présentation très utile dont le support est disponible sous la forme d’un PDF. Et pour toute les documentations associées à SystemTap, reportez-vous à au Wiki. Vous noterez qu’Oracle participe au développement de ce package. Notez pour que SystemTap permette de s’interfacer aux probes DTrace de MySQL, il faut en outre que votre noyau soit configuré avec utrace ce qui est le cas de Oracle ou Redhat EL mais pas de Ubuntu.