nodejs USR2信号使用heapdump终止进程

时间:2016-04-28 21:36:13

标签: node.js node-heapdump

使用heapdump,我正在尝试获取节点

的一些堆快照

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

将USR2发送到需要heapdump的节点进程应该触发heapdump将堆快照保存到工作目录。

在我的本地服务器上(在Mac上运行),这非常有用。在AWS ubuntu服务器上,USR2会终止该进程。我也尝试过SIGUSR2。

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

1 个答案:

答案 0 :(得分:1)

这可能是因为两个原因:

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

  • require('heapdump')未在当前工作程序中执行。因此,如果您使用节点cluster模块,那么您需要在当前工作程序中要求heapdump,即

if(worker.isMaster){    / *主要东西* / } else {     要求(“堆转储”) }