Node.js 快速应用程序停止响应

Node.js 快速应用程序停止响应,node.js,express,Node.js,Express,我在Express framework v3.18.3版上运行一个应用程序,nodejs是v0.12.0,FreeBSD服务器。问题是,一段时间后,它停止响应。我可以看到访问日志中充满了url,但响应时间是-,而不是78毫秒。因此,在某个时刻,如果不记录任何错误响应时间,错误响应时间就会消失: access.log GET/programs/224/200 78.628 ms-40673 GET/programs/10/200 76.315 ms-39278 GET/archive/1435/-

我在Express framework v3.18.3版上运行一个应用程序,nodejs是v0.12.0,FreeBSD服务器。问题是,一段时间后,它停止响应。我可以看到访问日志中充满了url,但响应时间是
-
,而不是78毫秒。因此,在某个时刻,如果不记录任何错误响应时间,错误响应时间就会消失:

access.log
GET/programs/224/200 78.628 ms-40673
GET/programs/10/200 76.315 ms-39278
GET/archive/1435/--ms--
GET/archive/899/--ms--
GET/archive/1647/--ms--

我以为它可能是
http.get
方法吃掉了5个连接池,但似乎不是,因为甚至没有一个对文件的调用使用
http.get

我想可能是mysql池有未释放的连接,但我检查了每个查询,所有查询都在回调中有
conn.release()


我绝望了,我还能查什么呢?

可能有几个原因。由于您尚未提供任何代码,您仍然可以检查您的应用程序是否存在任何或全部为真的代码。如果是,请避免使用这些代码

  • 检查您是否正在使用process.on('uncaughtException',…)。它可以使a节点应用程序挂起

  • 还要检查您正在使用的模块是否为任何事件启用了调试模式

  • 检查是否正在将nodejs结果输出到任何日志文件(例如exec su nodejs node/home/nodejs/server.js |/home/nodejs/logger.js)。这将使upstart守护进程监视日志记录过程,而不是服务器


  • 您能否展示
    /archive/…
    路由处理程序的实现?(前提是那些导致问题的人;否则,任何导致问题的处理人员可能会提供关于发生了什么的线索)