Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js PM2--最大内存重启:EADDRINUSE:地址已在使用中_Node.js_Pm2 - Fatal编程技术网

Node.js PM2--最大内存重启:EADDRINUSE:地址已在使用中

Node.js PM2--最大内存重启:EADDRINUSE:地址已在使用中,node.js,pm2,Node.js,Pm2,我有一个node.js应用程序在nginx负载平衡器后面的多个系统上运行。在白天和高峰时间,这些节点开始消耗更多的内存和cpu,当它们达到640MB内存的阈值时,它们会正常地重新启动。重启由PM2json脚本和max memory restart控制 现在的问题是,在重启后,新进程有时(并非总是)无法启动,因为端口仍在使用中。它在所有节点上随机发生 错误: 错误:侦听EADDRINUSE:地址已在使用中:::8888 在Server.setupListenHandle[as_listen2](n

我有一个
node.js
应用程序在nginx负载平衡器后面的多个系统上运行。在白天和高峰时间,这些节点开始消耗更多的内存和cpu,当它们达到640MB内存的阈值时,它们会正常地重新启动。重启由
PM2
json脚本和
max memory restart
控制

现在的问题是,在重启后,新进程有时(并非总是)无法启动,因为端口仍在使用中。它在所有节点上随机发生

错误:

错误:侦听EADDRINUSE:地址已在使用中:::8888
在Server.setupListenHandle[as_listen2](net.js:1255:14)
在ListeniCluster(net.js:1303:12) 在Server.listen(net.js:1391:7)

server.json脚本:

{
  "name"   : "server.json",
  "script" : "server.js",
  "max_memory_restart" : "640M",
  "log_date_format" : "YYYY-MM-DD HH:mm Z"
}

有什么不对劲?注意:我无法在群集模式下启动server.json,因为每个系统只有一个cpu。

听起来端口
8888
仍在使用,因此新进程无法绑定到它。我不确定你的应用程序是如何工作的,所以不能确切地说。我的理论是进程仍在关闭,但是在它可以释放端口<代码> 8888代码>代码之前,它试图复制它。请考虑调整你的重新启动脚本,如果它失败了,发现什么进程正在保存端口。