servidor nodejs pendurado de tempos em tempos

7

Eu tenho um servidor de nó (0.6.6) executando um aplicativo Express, junto com o Mongoose e o s3, em uma máquina Ubuntu 11.04.

Várias vezes por hora, o servidor está suspenso. Isso significa que o aplicativo está funcionando bem, vejo os registros expressos e, de repente, o servidor para de responder. Sem erros, sem traços, sem registros e, por incrível que pareça, o navegador não mostrará a solicitação, nem mesmo na janela de depuração da rede. De qualquer máquina na rede local, é o mesmo comportamento. Eu reinicio o servidor e tudo bem novamente por alguns minutos, então novamente começa a travar, toda vez ao fazer algo diferente.

O mesmo aplicativo na Amazon na mesma versão do Ubuntu funciona bem e nunca trava.

Eu sei que tudo isso é meio vago, mas não sei por onde começar. Algum de vocês já viu algo assim antes? Alguma idéia?

    
por Johann Philipp Strathausen 20.12.2011 / 14:27

1 resposta

3

Então, há duas causas que descobri que ambas poderiam causar o comportamento descrito.

  1. Piping para um processo de log. No meu script upstart eu tive uma linha dizendo algo como exec su nodejs node /home/nodejs/server.js | /home/nodejs/logger.js isto faria o daemon upstart supervisionar o processo de log ao invés do servidor. Assim, um servidor com falha passaria despercebido e pareceria estar parado. (em vez disso, pode-se usar < < < para canalizar da direita para a esquerda)

  2. process.on('uncaughtException', ...) pode desativar o aplicativo de nó. Eu acho que um dos módulos que eu tenho usado tinha um modo de depuração que permitia esse evento.

por 07.03.2012 / 13:03

Tags