40 votes

Quelle est une alternative à DTrace sous Linux ?

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 ?

30voto

Alex Brown Points 15776

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.

14voto

Sudhanshu Points 1855

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

12voto

ylluminate Points 3202

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

6voto

Paul Fox Points 61

4voto

Christian Points 396

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X