Je travaille avec une application Rails 3RC et j'utilise Phusion Passenger pour la première fois. Il faut environ 30 secondes pour démarrer l'application sur la première demande et voici la consommation de mémoire typique pour chaque processus rubis dans mon application:Phusion Problèmes de ponte du passager
PID VmSize privé Nom
18161 263,5 Mo 75,4 Mo Rack:/rails_apps/mon_app/current
Est-ce typique de la consommation de mémoire? Mon application est d'environ 11 Mo (< 4 Mo si vous n'incluez pas mes/actifs publics).
Il fonctionne bien après la première requête s'il y a un utilisateur, mais je rencontre des problèmes lorsque j'exécute certains scripts de tests de stress personnalisés, et aussi quand j'utilise ma fonction de suggestion de recherche qui fait un tas d'appels ajax rapides (ce à quoi je m'attendais, car la prochaine requête arrive avant que le premier ne se termine). Voici ce que je trouve bizarre .. le serveur commence à engendrer des threads Ruby qui prennent 30 secondes de plus à charger, mais aucune autre requête ne peut passer tant que le frai est en cours. Juste pour vérifier, j'ai testé avec des navigateurs sur d'autres réseaux pendant que les processus naissaient juste pour m'assurer que ce n'était pas quelque chose de spécifique à ma machine locale (comme toutes les demandes traitées par un processus). Ces demandes de navigateur ont dû attendre jusqu'à ce que tous les nouveaux spawns soient terminés.
Donc, ma question est .. est-ce le comportement typique de passager? En attente de frai avant que toute autre demande puisse arriver? En regardant la documentation, je pense que l'autre demande serait traitée par des processus de rubis inactifs pendant que la reproduction se produisait. Voici les versions que j'utilise au cas où vous auriez connaissance d'incompatibilités. Merci d'avance! Je ne veux pas revenir à Mongrel ;-)
ma configuration
Quarter tranche Rackspace Cloud (4 Go de RAM & 1/4 dual core quad)
CentOS 5.4
Rails 3.0RC
rubis 1.9.2dev (2010-05-31 révision 28117) [x86_64-linux]
passagers 2.2.15 avec bâtarde
options de configuration nginx:
passenger_max_pool_size 30;
passenger_enabled on; #in/location block ..
J'ai essayé le frai conservateur et je vois le même comportement.
Je suppose que c'est le comportement attendu de Passenger. Selon le blog Passenger: "Auparavant, lorsque les processus applicatifs étaient générés, Phusion Passenger ne peut gérer les requêtes HTTP tant que les processus ne sont pas générés, car Phusion Passenger maintient le verrou sur le pool d'applications pendant ce temps." J'ai du mal à croire que Passenger pourrait être utilisé sur une application qui a un trafic élevé. Cela peut prendre 5 minutes pour qu'une application réponde après un redémarrage. Mis à part que le passager a l'air bien .. impatient de v3. suppose que je dois coller w/mongrel pour le moment. – johnmcaliley