无法为 nodeJS 进程创建火焰图

Posted

技术标签:

【中文标题】无法为 nodeJS 进程创建火焰图【英文标题】:Unable to create flamegraph for nodeJS process 【发布时间】:2016-10-18 15:21:05 【问题描述】:

我正在尝试使用 perf 实用程序分析 nodeJS REST API。我正在使用的命令是 perf record -F 99 -p 5395 -g -- sleep 60 5395 是进程 ID。 它可以正常工作并将数据写入 perf.data 文件。 [ perf record: Woken up 6 times to write data ] [ perf record: Captured and wrote 1.360 MB perf.data (~59425 samples) ] 但是,当我尝试使用 perf script > out.perf 从它创建报告时,我收到错误 Failed to open /tmp/perf-5395.map, continuing without symbols。这基本上意味着 perf 无法反编译代码以在输出文件中显示 javascript 代码。如何获取此地图文件?我错过了什么?

【问题讨论】:

【参考方案1】:

节点上缺少 --perf_basic_prof_only_functions。

例如node --perf_basic_prof_only_functions app.js

【讨论】:

我是 linux 新手。能否请您详细说明perf record --perf_basic_prof_only_functions -F 99 -p 26882 -g -- sleep 60 告诉我unknown option perf_basic_prof_only_functions'` node --perf_basic_prof_only_functions app.js 这样将它添加到您的节点进程中,然后像以前一样使用 perf

以上是关于无法为 nodeJS 进程创建火焰图的主要内容,如果未能解决你的问题,请参考以下文章

火焰图:全局视野的Linux性能剖析

使用 --perf_basic_prof_only_functions 构建多个 node.js 进程的火焰图

0x nodejs火焰图工具试用

面试题--cpu高解决方案以及火焰图学习

nodejs 怎样检测子进程执行完成

Arthas生成Kafka火焰图