Question

J'exécute un hôte partagé Ubuntu 8.04 (VMWare) avec Apache + Passenger (= Mod Rails), MySQL et Acts_As_Ferret (en mode serveur). C'est trop lent aux premières demandes. Je fais beaucoup d'opérations REST dessus et n'ai que très peu d'utilisateurs.

Maintenant, je veux faire une nouvelle installation ...

Quelle configuration (basée sur Ubuntu) recommandez-vous pour un serveur RoR vraiment accrocheur? (par exemple, Ngnix, Thin, Mongrels ou d’autres objets fantaisistes)

Était-ce utile?

La solution

Consultez la liste de diffusion ec2onrails, qui contient de nombreuses discussions sur les différentes alternatives et permutations Thin / Nginx / Passager / Apache, ainsi que sur certaines données concrètes publiées sur la base de tests corrects.

Vous trouverez également une belle pile RoR / Ubuntu empaquetée sous la forme de l'image ec2onrails (google ec2onrails). Elle est conçue pour fonctionner sur le nuage amazon EC2, mais elle contient de nombreux éléments intéressants + tâches capistrano. Actuellement, il est basé sur Apache, mais la version en cours examine les alternatives. Aucune raison pour que vous ne puissiez pas utiliser le même script de construction pour un serveur non EC2.

Si votre problème concerne uniquement les requêtes initiales, essayez de réchauffer votre serveur avant de le considérer comme actif (par exemple, en exécutant un script pour exercer automatiquement les opérations de base).

Oh, et je devrais ajouter - êtes-vous sûr que le problème est votre pile? Plus probablement, c'est votre code. Il peut être intéressant de savoir où se situent vos goulets d’étranglement en premier lieu et ce que vous pouvez retirer de la mise en cache, de l’amélioration des requêtes et de l’indexation, et en particulier de la mémoire cache avant de modifier quoi que ce soit d’autre.

Autres conseils

Les premières demandes des passagers sont lentes, car elles sont inactives et arrêtent tous les processus rails. La première demande doit donc charger un processus rails. Vous devez faire un ping régulièrement pour éviter les périodes de ralenti et de fermeture des processus Rails ou définir le délai d'inactivité sur une valeur élevée.

Recherchez dans la documentation de RailsPoolIdleTime

Eh bien, vous pourriez augmenter considérablement votre vitesse en passant à Ubuntu 9.04 ou même à 8.10

J'utilise personnellement nginx + passagers sur ma pile Ubuntu. et utilisez sphinx au lieu de furet aussi bien

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top