Каков наилучший способ развернуть приложение Pylons?

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

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

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

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

7
задан user433974 28 August 2010 в 23:00
поделиться

3 ответа

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

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

2
ответ дан 7 December 2019 в 12:12
поделиться

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

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

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

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

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

Я наткнулся на несколько сайтов, где говорится об обоих:

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

Я проводил сравнения с apache2/mpm-worker, а не с mpm-prefork, поскольку мне не нужен mod_php5 в моей настройке.

1
ответ дан 7 December 2019 в 12:12
поделиться

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

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

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

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

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

  • Пилоны не медленные.
  • Разница в производительности mod_wsgi и uwsgi в рабочих настройках незначительна.
  • Производительность статических файлов Nginx выше, чем у apache.
  • Apache/mpm-worker намного быстрее, чем mod-prefork, если не нужен mod_php.
  • Почти любого развертывания, которое вы понимаете, вероятно, достаточно для 99% существующих веб-приложений.
  • 99% опубликованных тестов не тестируют среду должным образом. Посещение страницы 10000 раз не является показателем реальной производительности.
  • Попытки быть полезными, публикуя сообщения поздно ночью, никогда не срабатывают. Я знал, что когда я увидел это в твиттере, я должен был просто ничего не говорить.
2
ответ дан 7 December 2019 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: