从外部获取正在运行的节点js的当前堆栈跟踪

我有一个节点应用程序,定期在我的生产服务器上达到100%。 我希望能够发送一个信号给节点进程,这将给我一个堆栈跟踪,所以我可以find问题的代码在哪里。 有没有简单的方法来做到这一点?

我的服务器是Ubuntu 14.04.2,我正在运行节点0.12.2

有一个叫做console.trace()的函数可以帮助你完成你正在做的事情。

如何在Node.js中打印堆栈跟踪?

在进程上设置一个事件处理程序,用以下代码监视SIG1:

 process.on('SIGUSR1', function(){ console.trace }); 

现在,从terminal发出以下命令,向节点发送SIGUSR1信号:

 killall -10 node 

我不确定如果堆栈跟踪将回溯到足够有用,它可能只显示在SIG1USRcallback,不知道。 但我认为这会让你更接近。

我能够通过编译我自己的节点和V8版本来获得堆栈跟踪: https : //github.com/joyent/node/issues/25263