生产Linux系统(RH / CentOS和Debian / Ubuntu)中系统级跟踪的状态是什么?

时间:2015-02-11 20:48:21

标签: linux dtrace ltrace lttng

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

我的老板刚刚向一位要求我们支持DTrace的内部客户转达了一个问题。我知道Oracle DTrace Projectdtrace4linux以及Linux'自己的原生SystemTap(我记得它最初建立在Linux kprobes 之上;但我收集的比较新版本的SystemTap可以使用DTrace或合并到3.5内核的uprobes补丁。我还听说过SysdigLTTng甚至fulltrace(Linux内核ftraceuprobes支持之间有什么区别?)

我的初步回答是询问此用户是否曾尝试有效使用ltrace并使用 -S 选项来交错系统调用追踪(àlastrace)。

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

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

云虚拟机实例(OpenStack Nova,KVM)中是否有任何特别适合或特别糟糕的用途?

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

Niels Provos在Systrace

上的工作发生了什么

1 个答案:

答案 0 :(得分:2)

恕我直言 SystemTap 是您的客户的不错选择。我在DTrace和SystemTap上做了很多工作,并且不得不说,使用SystemTap可以实现DTrace可以实现的

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

适用于CentOS 6.x和7.x库存内核。不能说Ubuntu,因为我使用Debian - 工作正常,但Debian 7 stock内核没有uprobes。我也在Xen下使用它,一切看起来都很好。

与您提到的其他工具相比,SystemTap更复杂,因为与 Sysdig 不同,每个性能数据集都需要编写脚本(它有示例,但不多,并且没有这样的东西DTraceToolkit)。事件LTTng项目正在开发用户友好的工具。

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