I am working on a turbogears app and decided to test the different
methods of deploying an app and I'm a little concerned.  Since this
app requires SSL, and paster doesn't handle SSL, what are the
suggested methods for deployment?

Paster gives reasonably good performance during development for a
single user, however, I cannot use SSL with Paster.

mod_wsgi appears to work ok until there are multiple requests coming
in and response times on reloaded pages falls off considerably.  I
don't believe I would have too many issues with this application, but,
a reasonably successful site would appear to have issues even without
SSL.

How is turbogears.org set up?  mod_wsgi behind mpm-prefork?  or mpm-
worker?

apachebench on a very simple test, hitting a page that requires
authentication, 100 requests, no keepalives, no concurrent connections
comes up with:

paster: Requests per second:    Requests per second:    76.32 [#/sec]
(mean)
apache2-mpm-prefork Requests per second:    57.38 [#/sec] (mean)
apache2-mpm-worker Requests per second:    89.98 [#/sec] (mean)

As a baseline that is relatively decent.  The current php application
we're running is at: Requests per second:    72.51 [#/sec] (mean) on
lesser hardware.

If we bump up the concurrency, we start to run into issues:

At 10 concurrent requests, we get the following:

paster: Requests per second:    52.94 [#/sec] (mean)
apache2-mpm-prefork: Requests per second:    54.45 [#/sec] (mean)
apache2-mpm-worker: Requests per second:    53.61 [#/sec] (mean)

whereas our php application with 10 concurrent sessions is at:
Requests per second:    62.35 [#/sec] (mean).

If we test 100 concurrent requests, mpm-worker really shines through
by staying at roughly Requests per second:    53.46 [#/sec] (mean) and
paster comes through with Requests per second:    54.85 [#/sec] (mean)

These results don't come close to the Requests per second:    86.33 [#/
sec] (mean) at http://turbogears.org/2.0/  Since you have ServerTokens
set to prod, I couldn't really guess how you had deployed the site.
Since you use Discus, I'm assuming Identity is turned off.

So even with slight concurrency, mod_wsgi (or PasteWSGIServer/0.5) is
taking a rather huge hit.  Unless I have missed something obvious with
the testing, writing a scaleable application with TurboGears is going
to require considerable server resources.

A quick test to check mod_wsgi performance on my setup resulted in:

Requests per second:    2370.11 [#/sec] (mean)

Concurrency set to 20, 1000 requests.  Even at 50 or 100 concurrent
requests, the numbers don't change that dramatically.

This seems to suggest the load isn't from mod_wsgi, but from TG2.

What have I done differently than the Turbogears site?  Even without
authentication, with 10 concurrent requests I cannot get my
installation anywhere near 86.33 requests per second even on fairly
powerful hardware (X3220  @ 2.40GHz, quadcore, 8gb ram)  The only way
I could come close to the 86.33 was to run the app on a 2 server
cluster.

I have yet to try nginx/mod_wsgi, but, I believe my results might be
similar.  Apache was not configured to serve static images.  Since
apachebench only pulled a single page without any stylesheets/images,
the test should mimic a properly configured setup by testing only the
response time that turbogears took to check to see if the current
session was authenticated and presented a login page.

What deployment options are there?

paster
proxy -> paster
apache2-mpm-prefork -> mod_wsgi
apache2-mpm-worker -> mod_wsgi
nginx -> mod_wsgi
apache2 -> mod_python - run the entire virtualenvironment within
mod_python?

Based on the numbers above, apache2-mpm-worker appears to give me the
flexibility to allow TG2 to handle only the pages it needs while
apache serves the static content.

For a site that will see 100k unique visitors with 4-5 pageviews a
person a day, what bottlenecks should I expect?

The site shootq.com which is linked from the frontpage of
turbogears.org/2.0 as a site using TG2 in production appears to be
using CakePHP as their framework.  Does anyone use TurboGears on a
forward-facing website?  What issues have you run into?  How did you
deploy and what type of traffic are you seeing?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to