使用heapdump,我正在尝试获取节点
的一些堆快照根据https://blog.risingstack.com/finding-a-memory-leak-in-node-js/
将USR2发送到需要heapdump的节点进程应该触发heapdump将堆快照保存到工作目录。
在我的本地服务器上(在Mac上运行),这非常有用。在AWS ubuntu服务器上,USR2会终止该进程。我也尝试过SIGUSR2。
有谁知道为什么“sudo kill -USR2”会杀死进程而不是触发堆快照?
答案 0 :(得分:1)
这可能是因为两个原因:
在某些发行版中,kill代码为USR2
,而在其他发行版中则为SIGUSR2
。您需要运行kill -l
来检查您的发行版支持哪一个。
require('heapdump')
未在当前工作程序中执行。因此,如果您使用节点cluster
模块,那么您需要在当前工作程序中要求heapdump,即
if(worker.isMaster){ / *主要东西* / } else { 要求(“堆转储”) }