我有一个node.js
应用程序,在nginx负载均衡器后面的多个系统上运行。在白天和高峰时段,这些节点开始消耗更多的内存和CPU,并且当它们达到640MB内存阈值时会正常重启。重新启动由PM2
json脚本和max-memory-restart
控制。
现在的问题是,有时(并非总是如此)重新启动后,由于端口仍在使用中,因此无法启动新进程。它在所有节点上随机发生。
错误:
错误:监听EADDRINUSE:地址已在使用::: 8888
在Server.setupListenHandle上[作为_listen2](net.js:1255:14)
在listenInCluster(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。