我试图弄清楚为什么我的nodejs应用程序在11小时20分钟后变为无响应。每次都会发生,无论我是在amazon-linux
还是Red Hat
上运行它。节点应用程序在一段时间后无响应
我的堆叠:
- 的NodeJS(V 6.9.4)
- 的MongoDB(3.2)
- PM2进程管理器
- AWS EC2实例中T2
每次我运行的应用程序,它变得没有反应,返回到浏览器的错误:
网:: ERR_CONNECTION_RESET
Pm2的不重新启动应用程序,所以我怀疑它有没有关系nodejs
,我也分析了应用程序,它没有内存泄漏。 DB日志也看起来没问题。
唯一不变的因素是应用程序在运行11小时后崩溃20分钟。
我正在处理来自nodejs
应用程序的所有可能的错误,但没有发生日志文件错误,所以我怀疑它必须是其他东西。
我也检查了var/log/messages
和/home/centos/messages
,但没有任何与应用程序崩溃有关。
/var/log/mongodb/mongo.log
也没有显示任何具体的内容。
解决问题的最佳方法是什么?
任何线索我该如何调试它或可能是什么原因?
感谢
你正在泄漏内存以外的东西是我的猜测,也许是文件描述符。尝试使用netstat或lsof来查看是否有比您期望的更多的开放连接或文件。 –
如果您直接使用节点,即不使用pm2,它会起作用吗? – Robbie
@WillisBlackburn这似乎是它! UDP连接未被释放,nodejs达到硬限制。不知道堆栈溢出如何工作,但我可以接受您的评论作为答案吗?目前还没有确认,我需要再花一天时间进行测试,但看起来像!非常感谢!我花了数百小时! – matewilk