我試圖弄清楚爲什麼我的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