2016-04-28 62 views
1

使用heapdump,我试图采取节点的一些堆快照的NodeJS USR2信号使用堆转储

https://blog.risingstack.com/finding-a-memory-leak-in-node-js/

发送USR2到已要求堆转储应触发堆转储保存节点进程杀死进程一个堆快照到工作目录。

在我的本地服务器上(运行在Mac上),这很好。在AWS ubuntu服务器上,USR2杀死该进程。我也试过SIGUSR2。

有谁知道为什么“sudo kill -USR2”会杀死进程而不是触发堆快照?

+0

您是否找到解决方案?我面临同样的问题。 – neebz

+0

对不起,我不认为我做过 – wallacer

回答

0

这可能有两个原因发生:

  • 在一些发行版杀码USR2而在其他的SIGUSR2。您需要运行kill -l来检查您的发行版支持哪一个。

  • require('heapdump')未在当前工作者中执行。所以,如果你是使用节点cluster模块,那么你需要需要堆转储当前工人即

如果(worker.isMaster){ /*主*的东西/ }其他{ 要求(“堆转储” ) }