什么是Linux上的DTrace的替代品?

时间:2010-01-13 18:47:16

标签: linux dtrace

从我所看到的,Linux上的DTrace实现受到许可和政治的阻碍。目前有哪些替代方案?

6 个答案:

答案 0 :(得分:30)

Systemtap旨在解决与dtrace相同的问题,并具有类似的用户界面 - 用户编写将脚本附加到命名探针的小脚本。

据说它不稳定,默认情况下它通常不会编译到你的内核中,但是一旦我开始工作,我就没有任何问题。

您可以在this table on the systemtap website中看到它与dtrace的比较(可能是党派: - )

Dtrace已被部分爱好者Paul Fox移植到Linux上,可以下载供您试用 - 查看他blog上的链接。

据说kprobes是替代品,但我从未尝试过。

答案 1 :(得分:14)

SystemTap是基于Kprobes构建的更高级别的抽象。有关Kprobes如何工作的更多信息,您可以在LWN上阅读我的technical article

正如亚历克斯所说,Systemtap基本上解决了与dtrace相同的问题,除了它有点慢(你可能不会觉得它是这样,取决于你试图用它做什么)而不是dtrace而不是像抛光或安全使用。

要安装SystemTap SDT开发包,请尝试:

yum install systemtap-sdt-devel

答案 2 :(得分:12)

sysdig现在是一个很好的解决方案。

一些使用案例包括(他们的wiki has some exceptionally interesting examples):

对于磁盘I / O

  • 根据磁盘带宽使用情况查看热门流程

      

    sysdig -c topprocs_file

  • 列出使用大量文件的进程

      

    sysdig -c fdcount_by proc.name“fd.type = file”

  • 根据读取+写入字节查看顶级文件

      

    sysdig -c topfiles_bytes

  • 打印apache一直在阅读或写入的顶级文件

      

    sysdig -c topfiles_bytes proc.name = httpd

  • 基本opensnoop:snoop文件在发生时打开

      

    sysdig -p“%12user.name%6proc.pid%12proc.name%3fd.num%fd.typechar%fd.name”evt.type = open

  • 根据R + W磁盘活动查看顶级目录

      

    sysdig -c fdbytes_by fd.directory“fd.type = file”

  • 根据/ tmp目录中的R + W磁盘活动查看热门文件

      

    sysdig -c fdbytes_by fd.filename“fd.directory = / tmp /”

  • 观察名为'passwd'的所有文件的I / O活动

      

    sysdig -A -c echo_fds“fd.filename = passwd”

  • 按FD类型显示I / O活动

      

    sysdig -c fdbytes_by fd.type

答案 3 :(得分:6)

dtrace确实存在于linux(https://github.com/dtrace4linux)和http://crtags.blogspot.com

答案 4 :(得分:5)

Oracle正在将DTrace移植到linux:https://oss.oracle.com/projects/DTrace/

不知道这只适用于他们的Linux发行版或任何其他版本。

答案 5 :(得分:1)

Linux有strace / ltrace(参见this post关于strace)。但它们并不等同于DTrace,它们只涵盖了DTrace可以做的一小部分(实际上,DTrace远远优于Linux提供的任何东西)。