【发布时间】:2015-04-12 09:43:02
【问题描述】:
我正在帮助开发内部云基础架构 (OpenStack),以便为我们的部门提供 AWS/Rackspace/SoftLayer/etc 的完全本地替代方案。
我的老板刚刚向我转达了一个内部客户的问题,他们要求我们支持DTrace。我知道 Oracle DTrace Project 和 dtrace4linux 以及 Linux 自己的原生 SystemTap(我记得最初是在 Linux kprobes 上构建的;但我收集到的 SystemTap 的新版本可以使用到 DTrace 或合并到 3.5 内核中的 uprobes 补丁)。我也听说过Sysdig 和LTTng 甚至fulltrace(Linux 内核ftrace 和uprobes 支持有什么区别?)
我最初的反应是询问此用户是否尝试有效使用 ltrace 并且它是 -S 选项来交错系统调用跟踪(à la strace)。
但我也想在客户回来之前了解更多。
我的第一个也是最重要的问题是:在 CentOS 6、6.5 和 7.0 上“开箱即用”(无需替换现有内核)可以使用这些不同选项中的哪一个? Ubuntu 12.04 和 14.04 LTS 版本也有同样的问题?
这些是否特别适合或特别不适合在云 VM 实例(OpenStack Nova、KVM)中使用?
这些选项是否有相当好的和最近的比较?对于他们每个人所涉及的时间和精力投资,我最好的选择是什么?
Niels Provos 在 Systrace 上的工作发生了什么事
【问题讨论】:
-
Brendan Gregg 在他的网站brendangregg.com/Slides/LinuxConEU2014_LinuxPerfTools.pdf 上有几个关于 linux perf/tracing 的概述,其中列出了一些跟踪器 - 幻灯片 37、47、48、65-78:“跟踪器:– perf_events、ftrace、eBPF、 SystemTap、ktap、LTTng、dtrace4linux、sysdig"
-
我亲眼看过 Brendan 的演讲(在 SCaLE)。这些都是极好的资源。我只是希望达成一些新的共识和整合。