我怎样才能剖析我的节点应用程序,看看我在哪里使用内存和CPU资源?

我的网站CompassionPit.com由Node.js支持。 我已经发布了源代码; 它在GitHub上托pipe 。 该应用程序本身运行在一个768MB RAM的Linode(我最近升级了服务器,它在512MB)。

最近我得到了来自Linode的CPU使用率通知:我们越来越多地使用率达到90%以上。 我打电话给Linode,看看我能做些什么来升级我对CPU资源的访问权限,但显然我现在可以,因为如果我们最大可能达到100%,那么我们可以溢出到接下来的3个核心(Linode是4个处理器Xen实例)。

我怎样才能剖析我的节点应用程序,看看我在哪里使用内存和CPU资源? 我预测我很快就需要重新构build由多服务器设置运行的应用程序,但我直觉地相信,正确的分析将导致更聪明的架构决策。 如果我错了,请纠正我。

我已经使用https://github.com/dannycoates/node-inspector进行configuration文件合理的成功。 自述文件底部有一个设置指南。

从更高版本的Node.js开始,node-inspector的分析部分不再起作用。 我已经在回答中提到了--profhttp://code.google.com/p/v8/wiki/V8Profiler )和https://github.com/c4milo/node-webkit-agent取得了合理的成功下面。

节点检查器不能在版本0.6.x之后对节点进行configuration文件

以下插件已更新,可与新版本的v8(节点0.7.x +)一起使用。 这是除了nodetime.com之外唯一还在工作的一个。 它使用实际的webkitdebugging器:

https://github.com/c4milo/node-webkit-agent

它也有非常明确的说明。

从v6.3.0开始, 现在可以运行 node --inspect your_script.js

节点将打印一个URL到控制台,该控制台可以在Chrome中打开,这将连接到您显示一个function齐全的Web Inspector,您可以使用它来configuration节点进程。

运行node --inspect --debug-brk立即暂停执行(如果您的应用程序启动时需要立即开始分析会话,这很方便)