我的节点应用程序在我的生产服务器上定期达到100%。我希望能够向节点进程发送一个信号给我一个堆栈跟踪,这样我就能找到代码中的问题所在。 有没有简单的方法呢?
我的服务器是ubuntu 14.04.2,我正在运行节点0.12.2
答案 0 :(得分:1)
有一个名为console.trace()
的功能可以帮助您完成您想要做的事情。
How to print a stack trace in Node.js?
使用以下代码在进程上设置事件处理程序以监视SIG1:
process.on('SIGUSR1', function(){ console.trace });
现在,从终端发出以下命令,向Node发送SIGUSR1信号:
killall -10 node
我不确定堆栈跟踪是否会回溯到足以使您有用,它可能只是在SIG1USR上显示回调,不确定。但我认为这会让你更接近。
答案 1 :(得分:1)
通过编译我自己的节点版本和v8,我能够获得堆栈跟踪: https://github.com/joyent/node/issues/25263