我正在帮助开发内部云基础架构(OpenStack),为我们的部门提供AWS / Rackspace / SoftLayer /等的完全本地替代方案。
我的老板刚刚向一位要求我们支持DTrace的内部客户转达了一个问题。我知道Oracle DTrace Project和dtrace4linux以及Linux'自己的原生SystemTap(我记得它最初建立在Linux kprobes 之上;但我收集的比较新版本的SystemTap可以使用DTrace或合并到3.5内核的uprobes补丁。我还听说过Sysdig和LTTng甚至fulltrace(Linux内核ftrace
和uprobes
支持之间有什么区别?)
我的初步回答是询问此用户是否曾尝试有效使用ltrace并使用 -S
选项来交错系统调用追踪(àlastrace)。
但我也希望在客户回来之前了解更多信息。
我的第一个也是最重要的问题是:在这些各种选项中哪些可用于CentOS 6,6.5和7.0“开箱即用”(不更换库存内核)? Ubuntu 12.04和14.04 LTS版本的问题相同吗?
云虚拟机实例(OpenStack Nova,KVM)中是否有任何特别适合或特别糟糕的用途?
这些选项是否有相当好的和合理的近期比较?对于每个人投入的时间和精力投资,我最好的选择是什么?
Niels Provos在Systrace
上的工作发生了什么答案 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 合作,这应该意味着什么。