server nodejs suspendu de time en time

J'ai un server de noeud (0.6.6) exécutant une application Express, avec Mongoose et s3, sur une machine Ubuntu 11.04.

Plusieurs fois par heure, le server est suspendu. Cela signifie que la request fonctionne bien, je vois les loggings express, et tout de suite, le server cesse de répondre. Aucune erreur, aucune trace, aucune connection et, de façon étrange, le browser ne montrera pas la request même dans la window de debugging du réseau. À partir de n'importe quelle machine du réseau local, c'est le même comportement. Je redémarre le server et il est correct de nouveau pendant plusieurs minutes, puis il se met à suspendre à tout moment en faisant quelque chose de différent.

La même application sur Amazon sur la même version Ubuntu fonctionne bien et ne se bloque jamais.

Je sais que tout cela est un peu vague, mais je ne sais pas par où commencer. Quelqu'un d'entre vous a-t-il déjà vu quelque chose comme ça avant? Une idée?

Donc, il y a deux causes dont j'ai découvert que les deux pourraient même provoquer le comportement décrit.

  1. Transférer à un process de journal. Dans mon script upstart j'ai eu une ligne disant quelque chose comme exec su nodejs node /home/nodejs/server.js | /home/nodejs/logger.js exec su nodejs node /home/nodejs/server.js | /home/nodejs/logger.js cela ferait en sorte que le démon upstart supervise le process de journalisation au lieu du server. Ainsi, un server qui s'écroule passe inaperçu et semble être bloqué. (au lieu de cela, on pourrait utiliser <<< pour passer de droite à gauche)

  2. process.on('uncaughtException', ...) peut rendre l'application nœud bloquée. Je pense que l'un des modules que j'ai utilisé a eu un mode de debugging qui a permis cet événement.