Apache + Passenger – Apache en cours d’exécution; mais ne répondant pas aux demandes

Contexte

J’exécute une application Ruby on Rails qui doit également servir beaucoup de fichiers statiques.

Ma configuration est actuellement:

Debian Linux Lenny 5.0 Apache 2.2.9 Passenger 2.2.10

Le problème

Tout va bien. Je vois un processus apache se développer, les instances de passagers sont créées et tout fonctionne rapidement et rapidement.

Apache ne répond plus aux demandes après quelque temps. Les clients obtiennent une connexion et “attendent une réponse”, mais aucun ne vient.

Je ne peux pas reproduire manuellement ce problème. Parfois, il se produit quelques heures après un redémarrage, d’autres fois il faut quelques jours pour arriver. Voici ce que j’ai trouvé:

Processus Apache sont en place; Le passager est là, mais aucune instance n’a été créée (probablement parce que les instances meurent après une période d’inactivité)

Aucun message d’erreur ou problème dans / var / log / syslog, / var / log / messages, pas dans les journaux d’access et d’erreurs d’Apache, pas dans le journal de production Rails. Rien.

Quand je m’arrête et que je commence Apache, tout redevient normal.

Quelqu’un at-il des indices sur ce qui se passe ici? Et comment cela peut-il être résolu?

En raison d’une charge énorme sur les fichiers statiques, nous avons décidé d’héberger des fichiers statiques sur des serveurs distincts (plus tard Amazon S3 + CloudFront) pour des raisons de performances.

Ma conjecture actuelle est qu’Apache ne pouvait pas faire face au grand nombre de requêtes sur les fichiers statiques et également sur le traitement de Passenger. La configuration actuelle est Nginx + Unicorn pour l’application Rails et S3 + CloudFront pour les fichiers statiques.