Назад | Перейти на главную страницу

сервер nodejs время от времени зависает

У меня есть сервер узла (0.6.6), на котором запущено приложение Express, а также Mongoose и s3 на машине Ubuntu 11.04.

Несколько раз в час зависает сервер. Это означает, что приложение работает нормально, я вижу экспресс-журналы, а затем внезапно сервер перестает отвечать. Ни ошибок, ни следов, ни журналов, и, как ни странно, браузер не отображает запрос даже в окне сетевой отладки. На любом компьютере в локальной сети такое же поведение. Я перезапускаю сервер, и снова все в порядке, на несколько минут, потом снова начинает зависать, каждый раз делая что-то другое.

То же приложение на Amazon в той же версии Ubuntu работает нормально и никогда не зависает.

Я знаю, что все это довольно расплывчато, но не знаю, с чего начать. Кто-нибудь из вас видел что-то подобное раньше? Любая идея?

Итак, есть две причины, которые, как я выяснил, могут обе даже сами по себе вызвать описанное поведение.

  1. Подключение к процессу журнала. В моем сценарии-выскочке у меня была строка, говорящая что-то вроде exec su nodejs node /home/nodejs/server.js | /home/nodejs/logger.js это заставит демон-выскочку контролировать процесс регистрации вместо сервера. Таким образом, сбой сервера останется незамеченным и будет казаться остановленным. (вместо этого можно было использовать <<< для прокрутки справа налево)

  2. process.on('uncaughtException', ...) может привести к зависанию приложения узла. Я думаю, что в одном из модулей, которые я использовал, был режим отладки, который включал это событие.