如何在 CentOS 上生成 Node.js 火焰图?
Posted
技术标签:
【中文标题】如何在 CentOS 上生成 Node.js 火焰图?【英文标题】:How to generate a Node.js flame graph on CentOS? 【发布时间】:2012-10-24 16:35:01 【问题描述】:我想generate a flame graph for my node.js app。不幸的是,我的开发箱是 OSX(不支持 utrace 助手,根据链接的文章),而我的生产箱是 CentOS(甚至没有 dtrace)。
我发现了一些类似 SystemTap might be a dtrace alternative 的迹象,但我无法拼凑出一种有效的工作方式来生成适当的 stacks.out 文件以输入到 stackvis 中。
有人知道如何启动和运行它的体面教程吗?我更喜欢在 CentOS 上使用它(这样我可以检查我的生产应用程序),但 OSX 也足够了。
【问题讨论】:
第一个链接坏了。可能是这个? dtrace.org/blogs/dap/2012/01/05/… @cuberoot 这也是一篇好文章。不过,官方 Node.js 博客文章是我链接到的一篇,但它似乎已关闭。这是缓存版本:webcache.googleusercontent.com/… 【参考方案1】:从最新的谷歌搜索来看,人们对 Centos 上的 SystemTap 不满意,但这里有一篇文章 http://dtrace.org/blogs/brendan/2012/03/17/linux-kernel-performance-flame-graphs/ 被某人的 FlameGraph github 项目 https://github.com/brendangregg/FlameGraph 引用
我想说的是走向真正的解决方案,安装 dtrace 而不是依赖解决方法。
【讨论】:
【参考方案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
【讨论】:
以上是关于如何在 CentOS 上生成 Node.js 火焰图?的主要内容,如果未能解决你的问题,请参考以下文章
使用 --perf_basic_prof_only_functions 构建多个 node.js 进程的火焰图