使用DTrace分析Node.js.

ner*_*ell 6 javascript profiling dtrace node.js

我目前正在分析我的node.js应用程序.我发现这个博客:http://blog.nodejs.org/2012/04/25/profiling-node-js/表明我应该使用Dtrace.我使用以下步骤在ubuntu 12.04上安装了dtrace:https://askubuntu.com/questions/60940/how-do-i-install-dtrace

但是,当我在节点应用程序运行时在终端中运行此命令时:

dtrace -o stacks.out -n 'profile-97/execname == "node" && arg1/{
@[jstack(100, 8000)] = count(); } tick-60s { exit(0); }'
Run Code Online (Sandbox Code Playgroud)

stacks.out保持空白,除了:CPU ID FUNCTION:NAME 1 387695:tick-60s

有什么建议可能有什么不对吗?

psa*_*ord 6

Linux DTrace实现目前非常年轻,缺少许多重要功能(并且不以任何方式准备用于生产).具体而言,您正在使用的DTrace实现(Paul Fox)在支持用户空间跟踪方面做得不多.因此,您无法在Linux(现在)下执行此操作.

如果要使其工作,则需要使用具有更完整DTrace实现的操作系统.您最好的选择是使用Illumos衍生产品之一(例如OmniOS,SmartOSOpenIndiana).

您应该重新阅读您链接到的文章的"先决条件"部分.它声明您还需要确保在编译时使用32位NodeJS并启用DTrace支持.

(Mac OS X确实有一个很好的DTrace实现,但根据文章,它不支持此示例所需的ustack助手.)