我在Express框架版本v3.18.3上运行应用程序,nodejs是v0.12.0,FreeBSD服务器。问题是在一段时间后它停止响应。我可以看到访问日志正在填充网址,但响应时间为-
,而不是说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()
。
我很绝望,我还能检查什么?
答案 0 :(得分:0)
可能有几个原因。由于您还没有提供任何代码,您仍然可以检查您的应用是否真实。如果是,请避免这些
检查您是否正在使用process.on('uncaughtException',...)。它可以使节点应用程序挂起。
同时检查您使用的模块是否为任何事件启用了调试模式。
检查您是否将nodejs结果输出到任何日志文件(例如exec su nodejs node /home/nodejs/server.js | /home/nodejs/logger.js)。这将使upstart守护程序监督日志记录过程而不是服务器。