2010-08-28 27 views
7

Pylons uygulamalarını dağıtmanın birçok yolu vardır. - apache veya nginx yoluyla Proxy yapıştırmak - mod_wsgi uygulamayı katıştırma - Çeşitli yaklaşımlar hakkında çok okumak ama başarısız oldumBir Pylons uygulamasını dağıtmanın en iyi yolu nedir?

ve muhtemelen daha fazla ... - bazı sinirli nginx + uwsgi combo kullanarak hangisini tercih edeceğine gerçekten karar verir.

Nginx yoluyla yapıştırılacak proxy, kurulum için en kolay yöntem gibi görünüyor, ancak verimli mi? Yapıştırmak mod_wsgi veya uswgi'den daha yavaş olmaz mı? Eğer öyleyse, performans artışı güçlük değer mi?

Ben sadeliği istiyorum ama performansı (kenar kesim değil) Ben iyi gerekir ve, Obiwan Kenobi, benim tek umut vardır ... beni en iyi uzlaşma seçmenize yardımcı olacak bazı uzmanlar Need;)

cevap

1

En iyi cevap, buna bağlı.

Apache2/mod_wsgi, salt basitlik açısından bakıldığında, muhtemelen apache'yi anlayan çok daha büyük bir havuz havuzuna sahip olduğunuzdan yönetmenin en kolay yoludur.

Performans açısından bakıma bağlıdır. Uygulamanız çok ağır ve çok statik içerikli (css, resimler) yoğun değilse, web sunucusu ve pilonlar arasındaki ağ geçidi, darboğazınız ve hemen hemen her dağıtımın bunu ele geçirmesi daha olasıdır.

Yapıştır oldukça hızlıdır. Apache2/mod_wsgi'den biraz daha hızlı olması için nginx/uwsgi'nin arayüzünü buldum. nginx'in statik dosya performansı ve bellek gereksinimleri de nginx'i destekliyor.

tonylandis.com/python/deployment-howt-pylons-nginx-and-uwsgi/ cd34.com/blog/programming/:

Her ikisi hakkında söyledikleri karşılaşanlar birkaç site var piton/dikmesi-ve-facebook-uygulama-düzen/ code.google.com/p/modwsgi/wiki/IntegrationWithPylons

yaptığım karşılaştırmalar apache2/mpm-işçi ziyade mpm-prefork olarak birlikte I kurulumumda mod_php5'e gerek yoktu. Performans en önemli ise

+0

Huh. Web sunucusu ve Pylons arasındaki ağ geçidi neredeyse hiç darboğaz olmazdı. En azından CGI haricinde barındırma mekanizmalarının yükü o kadar azdır ki, gerçek bir sistem için (merhaba dünya programı değil) uygulamada, farklı barındırma mekanizmaları arasında çok az fark olacaktır. Bunun yerine darboğaz, uygulama, işleme sistemleri ve veritabanları olacaktır. Neyi kastettiğinden emin değilsin, ama gerçekten doğru sesle karşılaşmıyor. –

2

Başvuru bağımlı statik içerikten daha fazla çerçeve bağımlı ise, sınırlayıcı faktör web sunucusu olacağıdır Demek istediğim -> çerçeve ve ben nginx -> uwsgi -> pilonlar ve apache2/mpm-işçi -> mod_wsgi -> pilonlar performansında ihmal edilebilir farklılıklar bulundu. Bu, Pylons'un yavaş olduğu anlamına gelmez.

Repoze.who/what ile hangi dağıtım yöntemini kullansam farketmez, CPU çekirdeği başına saniyede 280 istek ölçmeyi zor buldum.

@mkucharz, Bu performans sonuçlarına gelince, bu sonuçlar üç yaşında ve bugün var olan konfigürasyonlara bile yaklaşmıyorlar. Pylons 1.0, 0.9'dan yaklaşık% 10 daha hızlıdır, flup daha olgun ve uwsgi veya mod_wsgi'yi test etmiyor. Aynı zamanda testin yaşına işaret eden Mako'dan da Mighty kullanır.

Diğer gizli değişkenler Python sürümünü içerir. Bazı dağıtımlarda, uygulamanın ne yaptığına bağlı olarak Python 2.5'i Python 2.6'dan biraz daha hızlı buldum.

Feragatler:

  • Pylons yavaş değil. Üretim ayarlarında
  • mod_wsgi ve uwsgi performans farkları ihmal edilebilir.
  • Nginx'in statik dosya performansı apache'den daha iyidir.
  • Eğer mod_php gerekli değilse, Apache/mpm-worker mod-prefork'dan daha hızlıdır.
  • Anladığınız tüm dağıtımlar, muhtemelen, webapps'in% 99'u için yeterlidir.
  • Yayınlanmış olan testlerin% 99'u bir ortamı doğru şekilde test etmiyor. Bir sayfaya 10000 kez vurmak gerçek dünya performansının bir göstergesi değildir.
  • Gece geç saatlerde yayın yaparken yardımcı olmaya çalışmak asla işe yaramaz. Bunu gördügümde tweetdeck'e geldigimi bildim, sadece bir sey dememeliydim.