nodejs服务器时不时挂掉

Joh*_*sen 7 unix node.js

我有一个节点服务器 (0.6.6) 在 Ubuntu 11.04 机器上运行 Express 应用程序以及 Mongoose 和 s3。

每小时几次,服务器挂起。这意味着应用程序运行良好,我看到了快速日志记录,然后服务器突然停止响应。没有错误,没有痕迹,没有日志,奇怪的是,即使在网络调试窗口中,浏览器也不会显示请求。在本地网络中的任何机器上都是相同的行为。我重新启动服务器,几分钟后又好了,然后再次开始挂起,每次都在做不同的事情。

Amazon 上相同 Ubuntu 版本的相同应用程序运行良好且永不挂起。

我知道这一切都有些模糊,但我不知道从哪里开始。你们有没有见过这样的事情?任何的想法?

Joh*_*sen 3

因此,我发现有两个原因甚至都可能导致所描述的行为。

  1. 通过管道传输到日志进程。在我的 upstart 脚本中,我有一行这样的内容,exec su nodejs node /home/nodejs/server.js | /home/nodejs/logger.js这将使 upstart 守护进程而不是服务器来监督日志记录过程。因此,崩溃的服务器不会被注意到,并且看起来像是停滞了。(相反,可以使用 <<< 从右到左进行管道传输)

  2. process.on('uncaughtException', ...)可以使节点应用程序挂起。我认为我一直在使用的模块之一具有启用该事件的调试模式。