我正在帮助开发内部云基础设施 (OpenStack),为我们的部门提供 AWS/Rackspace/SoftLayer/等的完全本地替代方案。
我的老板刚刚向我转达了一个内部客户的问题,他们要求我们支持DTrace。我知道Oracle DTrace 项目和dtrace4linux以及 Linux 自己的本机SystemTap(我记得它最初是基于 Linux kprobes构建的;但我收集到的SystemTap的较新版本可以利用 DTrace 或合并到3.5 内核)。我还听说过Sysdig和LTTng甚至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上的工作发生了什么