D'après ce que je peux voir, une implémentation de DTrace sur Linux est bloquée par les licences et la politique. Quelles sont les alternatives actuelles ?
Réponses
Trop de publicités?Systemtap est conçu pour résoudre le même genre de problèmes que dtrace, et a une interface utilisateur similaire - l'utilisateur écrit de petits scripts qui attachent des actions à des sondes nommées.
Il est dit qu'il est instable, il n'est généralement pas compilé dans votre noyau par défaut, mais une fois que je l'ai fait fonctionner, je n'ai pas eu de problèmes.
Vous pouvez voir comment il se compare à dtrace en ce tableau sur le site web de systemtap (Peut être partisan :-)
Dtrace a été partiellement porté sur Linux par Paul Fox, un enthousiaste, et est disponible en téléchargement pour que vous puissiez l'essayer. blog .
Il a été dit que kprobes sont un remplacement de dtrace, mais je ne les ai jamais essayés.
SystemTap est une abstraction de plus haut niveau construite sur des Kprobes. Pour plus d'informations sur le fonctionnement des Kprobes, vous pouvez lire mon article intitulé article technique sur LWN.
Comme Alex l'a mentionné, Systemtap résout essentiellement le même problème que dtrace, sauf qu'il est un peu plus lent (vous pouvez ne pas le percevoir comme tel, en fonction de ce que vous essayez de faire avec) que dtrace et pas tout à fait aussi bien conçu ou sûr à utiliser.
Pour installer le paquet de développement SystemTap SDT, essayez :
yum install systemtap-sdt-devel
sysdig
est maintenant une excellente solution.
Certains cas d'utilisation incluent (leur wiki a quelques exemples exceptionnellement intéressants ):
Pour les E/S de disque
-
Voir les principaux processus en termes d'utilisation de la bande passante du disque
sysdig -c topprocs_file
-
Listez les processus qui utilisent un nombre élevé de fichiers.
sysdig -c fdcount_by proc.name "fd.type=file"
-
Voir les fichiers les plus importants en termes d'octets de lecture et d'écriture.
sysdig -c topfiles_bytes
-
Affiche les principaux fichiers qu'apache a lus ou écrits.
sysdig -c topfiles_bytes proc.name=httpd
-
Basic opensnoop : ouverture des fichiers snoop au fur et à mesure qu'ils se produisent
sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=open
-
Voir les répertoires les plus importants en termes d'activité de disque R+W
sysdig -c fdbytes_by fd.directory "fd.type=file"
-
Voir les fichiers les plus actifs en termes de R+W dans le répertoire /tmp.
sysdig -c fdbytes_by fd.filename "fd.directory=/tmp/"
-
Observez l'activité I/O sur tous les fichiers nommés 'passwd'.
sysdig -A -c echo_fds "fd.filename=passwd"
-
Afficher l'activité des E/S par type de FD
sysdig -c fdbytes_by fd.type
Dtrace existe pour linux ( https://github.com/dtrace4linux ) et http://crtags.blogspot.com .
Oracle porte DTrace sur Linux : https://oss.oracle.com/projects/DTrace/
Je ne sais pas si cela fonctionne uniquement avec leur distribution linux ou avec une autre.