Linux 上 DTrace 的替代方案是啥? [关闭]
Posted
技术标签:
【中文标题】Linux 上 DTrace 的替代方案是啥? [关闭]【英文标题】:What's an alternative for DTrace on Linux? [closed]Linux 上 DTrace 的替代方案是什么? [关闭] 【发布时间】:2010-01-13 18:47:15 【问题描述】:据我所知,Linux 上的 DTrace 实现受到许可和政治的阻碍。目前有哪些替代方案?
【问题讨论】:
Linux 上的 dtrace 有什么新东西吗? @Syntax_Error 是的,你不再需要它了:brendangregg.com/blog/2016-10-27/dtrace-for-linux-2016.html 【参考方案1】:Systemtap 旨在解决与 dtrace 相同的问题,并具有类似的用户界面 - 用户编写将操作附加到命名探针的小脚本。
据说是不稳定的,默认情况下它通常不会编译到你的内核中,但是一旦我让它工作,我就没有任何问题。
您可以在this table on the systemtap website 中看到它与 dtrace 的比较(可能是党派 :-)
Dtrace 已由爱好者 Paul Fox 部分移植到 Linux,可供您下载试用 - 查看他的 blog 上的链接。
据说kprobes 是 dtrace 的替代品,但我从未尝试过。
【讨论】:
我不知道那个 DTrace 端口,我会检查一下。谢谢。【参考方案2】:SystemTap 是建立在 Kprobes 之上的更高层次的抽象。有关 Kprobes 如何工作的更多信息,您可以阅读我在 LWN 上的technical article。
正如 Alex 所提到的,Systemtap 本质上解决了与 dtrace 相同的问题,只是它比 dtrace 慢一些(您可能不会这么认为,这取决于您尝试用它做什么),而不是完全一样抛光或使用安全。
要安装 SystemTap SDT 开发包,请尝试:
yum install systemtap-sdt-devel
【讨论】:
【参考方案3】: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
【讨论】:
【参考方案4】:对于 linux (https://github.com/dtrace4linux) 和 http://crtags.blogspot.com 确实存在 dtrace。
【讨论】:
【参考方案5】:Oracle 正在将 DTrace 移植到 linux:https://oss.oracle.com/projects/DTrace/
不知道这是否仅适用于他们的 linux 发行版或其他任何发行版。
【讨论】:
看起来他们现在已经全力以赴:theregister.co.uk/2018/02/19/…【参考方案6】:Linux 有 strace/ltrace(参见 this post 关于 strace)。但它们并不真正等同于 DTrace,它们只涵盖了 DTrace 可以做的一小部分(实际上,DTrace 远远优于 Linux 提供的任何东西)。
【讨论】:
strace
更接近于truss
而不是dtrace
。以上是关于Linux 上 DTrace 的替代方案是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
CentOS 8/6 Linux 生命终结,2022 年最好的替代方案是啥?