linux - 生产 Linux 系统(RH/CentOS 和 Debian/Ubuntu)中的系统级跟踪状态如何?

标签 linux dtrace ltrace lttng

我正在帮助开发内部云基础设施 (OpenStack),为我们的部门提供 AWS/Rackspace/SoftLayer 等的完全本地替代方案。

我的老板刚刚向我转达了一些要求我们支持的内部客户的问题 DTrace .我知道 Oracle DTrace Projectdtrace4linux和 Linux 自己的 native SystemTap (我记得它最初是在 Linux kprobes 上构建的;但我收集到比新版本的 SystemTap 可以利用 DTrace 或已合并到 3.5 内核中的 uprobes 补丁)。我也听说过 SysdigLTTng甚至 fulltrace (Linux 内核 ftraceuprobes 支持有什么区别?)

我最初的 react 是询问该用户是否尝试过有效使用 ltrace它是 -S 交错系统调用跟踪的选项(à la strace)。

但我也想在客户回来之前了解更多信息。

我的第一个也是最重要的问题是:在 CentOS 6、6.5 和 7.0“开箱即用”(无需更换库存内核)上,可以使用这些不同的选项中的哪些选项? Ubuntu 12.04 和 14.04 LTS 版本有同样的问题吗?

这些是特别适合还是特别不适合在云 VM 实例(OpenStack Nova、KVM)中使用?

是否对这些选项进行了相当不错且相当近期的比较?对于他们每个人所涉及的时间和精力投资,我最好的选择是什么?

Niels Provos 在 Systrace 上的工作发生了什么?

最佳答案

恕我直言 SystemTap 是您客户的不错选择。我经常使用 DTrace 和 SystemTap,不得不说 DTrace 可以实现的 SystemTap 也可以实现

他们与其他工具有比较https://sourceware.org/systemtap/wiki/SystemtapDtraceComparison (正如预期的那样,SystemTap 是赢家)。它还向后兼容 DTrace USDT 探测器。

它适用于 CentOS 6.x 和 7.x 库存内核。不能说任何关于 Ubuntu 的事情,因为我使用的是 Debian——工作正常,但 Debian 7 库存内核没有 uprobes。我也在 Xen 下使用它,一切似乎都很好。

然而,与您提到的其他工具相比,SystemTap 更复杂,因为与 Sysdig 不同,每个性能数据收集都需要脚本(它有示例,但不多,并且没有诸如DTrace 工具包)。 Event LTTng 项目正在开发用户友好的工具。

此外,著名的 DTrace 开发人员之一 Brendan Gregg 目前正在使用 SysdigSystemTap,这应该意味着什么。

关于linux - 生产 Linux 系统(RH/CentOS 和 Debian/Ubuntu)中的系统级跟踪状态如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28464191/

相关文章:

php - 执行 Linux shell 脚本时出错

linux - 在 Linux 中使用 USDT 探针 (Dtrace) 获取 BPF 程序

linux - AQUA,许可被拒绝

linux - 在 Linux 中从 dtrace 修复 'no symbolic type information'?

linux - ltrace()如何显示rand()

ltrace - 为什么 ltrace 显示这么多参数和参数?

gdb - 监控linux动态库

c - 在读取期间完全清除调制解调器模块串行缓冲区

Linux 脚本 : substituting a multiple lines with single line of text