Каков наилучший способ развертывания приложения Pylons? - PullRequest
7 голосов
/ 29 августа 2010

Существует много способов развертывания приложений Pylons.- Проксирование через apache или nginx для вставки - Внедрение приложения с помощью mod_wsgi - с использованием некоторого комбинированного edgy nginx + uwsgi - и, возможно, многое другое ...

Я много читал о различных подходах, но не смог действительно решитькакой выбрать.

Прокси для вставки через nginx, кажется, самый простой способ настройки, но эффективен ли он?Не будет ли вставка медленнее, чем mod_wsgi или uswgi?Если да, то стоит ли увеличение производительности?

Нужны эксперты, которые помогут мне выбрать лучший компромисс ... Я хочу простоты, но мне нужна приличная (если не передовая) производительность, и вы, ОбиванКеноби, моя единственная надежда;)

Ответы [ 3 ]

2 голосов
/ 30 августа 2010

Если производительность наиболее важна, посмотрите на некоторые тесты:

http://wiki.pylonshq.com/display/pylonscookbook/Some+performance+test+results

2 голосов
/ 30 августа 2010

Что я хотел сказать, так это то, что если приложение в большей степени зависит от платформы, чем от статического содержимого, то ограничивающим фактором будет веб-сервер -> framework, и я обнаружил незначительные различия в производительности nginx -> uwsgi -> pylons и apache2 / mpm-worker -> mod_wsgi -> pylons, поскольку ограничивающим фактором является Pylons. Это не значит, что пилоны работают медленно.

Независимо от того, какой метод развертывания я использовал с repoze.who / чем, мне было трудно масштабировать последние 280 запросов в секунду на ядро ​​ЦП.

@ mkucharz, Что касается тех результатов производительности, то этим результатам три года, и они даже не приближаются к конфигурациям, которые существуют сегодня. Pylons 1.0 примерно на 10% быстрее, чем 0.9, flup гораздо более зрелый, и это не проверяет uwsgi или mod_wsgi. Он также использует Mighty, а не Mako, также указывая на возраст теста.

Другие скрытые переменные включают версию Python. В некоторых дистрибутивах Python 2.5 работает немного быстрее, чем Python 2.6, в зависимости от того, что делает приложение.

Отказ от ответственности:

  • Пилоны не медленные.
  • Различия в производительности mod_wsgi и uwsgi незначительны в производственных настройках.
  • Статическая производительность Nginx лучше, чем у Apache.
  • Apache / mpm-worker намного быстрее, чем mod-prefork, если mod_php не нужен.
  • Практически для любого развертывания, которое вы понимаете, вероятно, достаточно для 99% веб-приложений.
  • 99% опубликованных тестов неправильно тестируют среду. Попадание на страницу 10000 раз не указывает на реальную производительность.
  • Попытка быть полезной при публикации поздно ночью никогда не работает. Я знал, когда увидел, что это происходит в твиттеке, я должен был просто ничего не сказать.
1 голос
/ 30 августа 2010

Лучший ответ, это зависит.

С точки зрения простоты, apache2 / mod_wsgi, вероятно, проще всего управлять, поскольку у вас гораздо больше людей, понимающих apache.

С точки зрения производительности это зависит.

Если ваше приложение сильно загружено фреймворком и не требует большого количества статического контента (CSS, изображений), шлюз между веб-сервером и пилонами, скорее всего, станет вашим узким местом и практически при любом развертывании.может справиться с этим.

Вставить довольно быстро.Я обнаружил, что интерфейс nginx / uwsgi немного быстрее, чем apache2 / mod_wsgi.Требования к производительности статического файла и памяти nginx также благоприятствуют nginx.

Есть несколько сайтов, с которыми я сталкивался и которые говорят о:

tonylandis.com / python / deploy-howt-pylons-nginx-and-uwsgi / cd34.com/blog/programming/python/pylons-and-facebook-application-layout/ code.google.com/p/modwsgi/wiki/IntegrationWithPylons

Сравнения I 'мы сделали с apache2 / mpm-worker, а не с mpm-prefork, так как мне не нужен mod_php5 в моей настройке.

...