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

时间:2017-09-08 20:25:03

标签: node.js ubuntu perf dtrace systemtap

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

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

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

我在启动linux perf tools命令的应用程序时添加了--prof / --perf_basic_prof_only_functions

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

CPU     ID                    FUNCTION:NAME
  0 330511                        :tick-60s 

在此之后安装dtracehttps://askubuntu.com/questions/60940/how-do-i-install-dtrace

当我尝试将linux perf命令的输出转换为flamegraph时,我得到的输出是

ERROR: No stack counts found

我不确定缺少什么,为什么没有记录堆栈跟踪。 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

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

0 个答案:

没有答案