7
votes

Quelle est la meilleure façon de déployer une application de pylônes?

Il existe de nombreuses façons de déployer des applications de pylônes. - Proxying via Apache ou Nginx à coller - Incorporer l'application avec mod_wsgi - Utiliser quelques combo Edgy Nginx + UWSGI - et probablement plus ...

J'ai beaucoup lu sur les différentes approches, mais j'ai vraiment décidé de décider lequel choisir.

Proxy de la pâte à travers Nginx semble être la méthode la plus simple pour la configuration, mais est-ce efficace? Ne pâtiserais pas être plus lent que mod_wsgi ou USWGI? Si tel est le cas, la performance augmente-t-elle?

Besoin de certains experts pour m'aider à choisir le meilleur compromis ... Je veux une simplicité, mais j'ai besoin de performance décente (si elle ne pointe pas) et que vous, Obiwan Kenobi, est mon seul espoir;)


0 commentaires

3 Réponses :


1
votes

La meilleure réponse est que cela dépend.

d'un point de vue pur de simplicité, Apache2 / Mod_WSGI est probablement le plus facile à gérer depuis que vous avez une piscine beaucoup plus grande de personnes qui comprennent Apache.

du point de vue de la performance, cela dépend.

Si votre application est très structurée et pas de contenu très statique (CSS, images) intensive, la passerelle entre le serveur Web et les pylônes est plus probable que votre goulot d'étranglement et presque tout déploiement peut gérer cela.

La pâte est assez rapide. J'ai trouvé l'interface de Nginx / Uwsgi pour être légèrement plus rapide que Apache2 / Mod_WSGI. Les exigences de la performance et de la mémoire de Nginx sont également également favorables à NGinx.

Il y a quelques sites que j'ai rencontrés à la fois:

Tonylandis.com/python/Deployment-howt-pylons-nginx-and-uwsgi/ cd34.com/blog/programming/python/pylons-et-facebook-application-layout/ code.google.com/p/modwsgi/wiki/Integrationwithpylons

Les comparaisons que j'ai faites sont avec Apache2 / MPM-Travailleur plutôt que MPM-PREFORK, car je n'ai pas besoin de mod_php5 dans ma configuration.


1 commentaires

Hein. La passerelle entre le serveur Web et les pylônes ne seraient pratiquement jamais le goulot d'étranglement. Les frais généraux des mécanismes d'hébergement, à l'exception de la CGI au moins, sont tellement minimes que, dans la pratique pour un système réel (pas un programme mondial de bonjour), il y aura peu de différence entre différents mécanismes d'hébergement. Au lieu de cela, le goulot d'étranglement sera l'application, les systèmes de rendu et les bases de données. Je ne sais pas ce que vous entendez dire, mais cela ne survient pas vraiment bien.



2
votes

Si la performance est la plus importante, regardez quelques tests:

http://wiki.pylonshq.com/display/pylonscookbook / Quelques performances + test + résultats


1 commentaires

Il semble que le lien soit mort.



2
votes

Ce que je voulais dire, c'est que si la demande est plus dépendante du cadre que le contenu statique dépendante, le facteur de limitation serait le serveur Web -> Cadre et j'ai trouvé des différences négligeables dans la performance de NGinx -> UWSGI -> Pylons et travailleur Apache2 / MPM -> mod_wsgi -> pylônes comme le facteur de limitation est des pylônes. Cela ne veut pas dire que les pylônes sont lents.

Peu importe la méthode de déploiement que j'ai utilisée avec repoze.qui / quoi, j'ai trouvé difficile à taper 280 demandes par seconde par cèdre de la CPU.

@mkucharez, quant à ces résultats de performance, ces résultats ont trois ans et ne sont même pas proches de configurations existantes aujourd'hui. Pylônes 1.0 est d'environ 10% plus rapide que 0,9, le fluillage est beaucoup plus mature et qui ne teste pas UWSGI ou MOD_WSGI. Il utilise également de puissants plutôt que de Mako, soulignant également l'âge du test.

Les autres variables cachées comprennent la version de Python. Dans certaines distributions, j'ai trouvé Python 2.5 d'être un peu plus rapide que Python 2.6 en fonction de l'application.

Disclaimer:

  • pylônes n'est pas lent.
  • Les différences de performance mod_wsgi et UWSGI sont négligeables dans les paramètres de production.
  • La performance du fichier statique de Nginx est meilleure que Apache.
  • Apache / MPM-Travailleur est beaucoup plus rapide que Mod-Prefork si mod_php n'est pas nécessaire.
  • Presque tout déploiement que vous comprenez est probablement suffisant pour 99% des webapps là-bas.
  • 99% des points de repère publiés ne testent pas correctement un environnement. Frapper une page 10000 fois n'est pas révélateur de la performance réelle mondiale.
  • Essayer d'être utile lorsque la publication tardive la nuit ne fonctionne jamais. Je savais quand j'ai vu cela montait sur Tweetdeck, je devrais juste dire rien.

0 commentaires