3

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

我的老板刚刚向我转达了一个内部客户的问题,他们要求我们支持DTrace。我知道Oracle DTrace 项目dtrace4linux以及 Linux 自己的本机SystemTap(我记得它最初是基于 Linux kprobes构建的;但我收集到的SystemTap的较新版本可以利用 DTrace 或合并到3.5 内核)。我还听说过SysdigLTTng甚至fulltraceftrace (Linux 内核和uprobes支持之间有什么区别?)

我最初的回答是询问此用户是否尝试有效地使用ltrace以及-S交错系统调用跟踪的选项(à la strace)。

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

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

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

这些选项是否有相当好的和最近的比较?对于每个人所涉及的时间和精力投资,我最好的选择是什么?

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

4

1 回答 1

2

恕我直言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不同,每个性能数据收集都需要编写脚本(它有示例,但不多,并且没有 DTraceToolkit 之类的东西)。Event LTTng 项目正在开发用户友好的工具。

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

于 2015-03-11T11:24:53.747 回答