About Archive Tag Cloud Translations RSS

You are writing a comment about Overview of Single vs. Multi Server Architecture, here is a quick summary:

I've been thinking a bit more about all the various deployment options for Django, and more specifically how the variety of options can be a bit bewildering for those who haven't setup a server before. Here is a picture-assisted guide to the distinctions between single and multi server architectures.


You are responding to this comment written by Graham Dumpleton on February 17th 2009, 04:15.

The only other thing I'll add right now is that the general impression that many seem to have that mod_python consumes huge amounts of memory is actually wrong. What consumes the memory is the Python web application on top of it. If one looks at a single Apache server child process, when you deduct the overheads of Apache itself, then the process size shouldn't be much different to if you had hosted it in a standalone Python web server. The real problem is then that most don't bother to adjust the default MPM settings of Apache to values more comensurate to a fat persistant web application. If using prefork MPM with default settings, obviously you are going to have problems if Apache decides to create 150 processes to meet demand and every one of them has a copy of your fat Python web application.

Anyway, I am already part way through an extended blog post about this and related issues and how it has contributed to a wrong belief that mod_python sux, so keep an eye out for it.

If you want to have a better discussion on how processes/interpreters are used in Apache and mod_python or mod_wsgi, suggest you come over to the mod_wsgi list on Google groups. You also may want to read:

http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

with gives a bit of background on the different modes of operation of mod_wsgi and how things are different for each Apache MPM.


Please be aware that comment forms go stale after one hour.





Comments may make use of LifeFlow MarkDown. Raw html will be escaped.


Quick Introduction to LifeFlow MarkDown Syntax

A highlighted code block:

@@ ruby
def a (b, c):
  b * c
end
@@

Other common languages work as well: scheme, python, java, html, etc.

Other markdown syntax:

 ### This is an h3 title
#### This is an h4 title
**this is bold**
*this is italics*

1. This is an
2. ordered list

* And an unordered
* list too

[this is a link](http://www.lethain.com/ "Lethain")