dtrace 和 linux perf 工具在 ubuntu 中不起作用

use*_*718 5 ubuntu dtrace systemtap node.js perf

我有一个在 aws ubuntu 实例上运行的 node.js 应用程序。我试图生成火焰图dtracelinux perf tools但它们似乎都不起作用。这些是我遵循的步骤:

linux性能工具:https : //www.carlhopf.com/blog/2016/09/11/nodejs-cpu-profiling-production/

dtrace: https://nodejs.org/en/blog/uncategorized/profiling-node-js/

我已经--prof / --perf_basic_prof_only_functions为 linux perf 工具命令添加了启动应用程序的同时。

我从 dtrace stacks.out 文件得到的输出是:

CPU     ID                    FUNCTION:NAME
  0 330511                        :tick-60s 
Run Code Online (Sandbox Code Playgroud)

安装dtrace如下:https : //askubuntu.com/questions/60940/how-do-i-install-dtrace

当我尝试将 linux perf 命令的输出转换为火焰图时得到的输出是

ERROR: No stack counts found
Run Code Online (Sandbox Code Playgroud)

我不确定缺少什么以及为什么没有记录堆栈跟踪。 node version: 8.4.0 ubuntu : 14.04 我确实看到有Systemtap可用选项并且可以使用此命令:

stap -s 32 -D MAXBACKTRACE=100 -D MAXSTRINGLEN=4096 -D MAXMAPENTRIES=10240 \
    -D MAXACTION=10000 -D STP_OVERLOAD_THRESHOLD=5000000000 --all-modules \
    -ve 'global s; probe timer.profile { s[backtrace()] <<< 1; } 
    probe end { foreach (i in s+) { print_stack(i);
    printf("\t%d\n", @count(s[i])); } } probe timer.s(60) { exit(); }' \
    > out.stap-stacks
Run Code Online (Sandbox Code Playgroud)

但不确定如何使用 PID 为我正在运行的节点应用程序运行该命令。有没有其他方法可以在 ubuntu 机器中生成火焰图?