7

我想为我的 node.js app 生成一个火焰图。不幸的是,我的开发箱是 OSX(不支持 utrace 助手,根据链接的文章),我的生产箱是 CentOS(甚至没有 dtrace)。

我发现一些迹象表明SystemTap 之类的东西可能是 dtrace 的替代品,但我一直无法拼凑出一种有效的工作方式来生成适当的 stacks.out 文件以输入到 stackvis 中。

有人知道如何启动和运行它的体面教程吗?我更喜欢在 CentOS 上使用它(这样我可以检查我的生产应用程序),但 OSX 也足够了。

4

2 回答 2

2

在 Linux 上,perf_events 分析器可用于对堆栈跟踪进行采样,并支持 JIT 符号。对于 node.js,您需要使用 v8 选项 --perf-basic-prof 运行 0.11.13 或更高版本。该选项为 perf 使用的符号转换创建一个 /tmp/perf-PID.map 文件。使用 JavaScript 符号对堆栈跟踪进行性能分析后,您可以在“性能脚本”的输出上使用 stackcollapse-perf.pl(来自 FlameGraph 存储库)创建火焰图。

我在这里写了完整的说明:http ://www.brendangregg.com/blog/2014-09-17/node-flame-graphs-on-linux.html

于 2014-09-17T22:11:33.027 回答
2

从最新的谷歌搜索来看,人们对 Centos 上的 SystemTap 不满意,但这里有一篇文章http://dtrace.org/blogs/brendan/2012/03/17/linux-kernel-performance-flame-graphs/被引用由某人的 FlameGraph github 项目https://github.com/brendangregg/FlameGraph

我会说走向真正的解决方案,安装 dtrace 而不是依赖解决方法。

于 2013-03-09T20:03:45.350 回答