On Dec 6, 12:40 pm, TP <[EMAIL PROTECTED]> wrote: > I thought I needed multiple Apache's since I frequently have several > concurrent requests. The actual dynamic python processing is quick, > but since clients could be connected for relatively long (slow > connections, etc), I thought I'd need multiple Apache's talking to > each. Since Django says it's not officially thread safe, I'm using the > prefork MPM in Apache.
Even in 'prefork' mode of Apache, there are multiple processes handling requests and so concurrent requests is not a problem. The problem with prefork though is that you can end up with lots of process, all consuming the maximum your Django application will use. For memory constrained VPS systems, using 'worker' MPM is a better choice as you cut down on the number of Apache child processes and therefore memory, with concurrency then coming from multithreading, but also from fact that multiple processes still may also be running. You might have a read of: http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading which talks about the different process/threading models that Apache provides and how mod_wsgi makes use of them and extends on them. In respective of thread safety of Django, where does it say it is 'not officially thread safe'. I know that it is implied through fact they suggest prefork when using mod_python, but they also don't say to avoid mod_python on Windows, which is multithread, plus FASTCGI examples give examples using multithreading. So, there is actually conflicting information on the issue. As explained in: http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango the situation seems to be that there are no known current issues with Django itself in respect of multithreading. Thus, any multithread problems are more likely to come from the application built by a user using Django. So, it is just a matter of testing your application so you are satisfied that there isn't a problem. > I looked at mod_wsgi and decided to try fastcgi since the Django docs > explicitly support it. But, given my problems perhaps I'll try > mod_wsgi next. That there is nothing in Django documentation about mod_wsgi is more to do with no one offering up anything to add which mentions it. The Django documentation on mod_wsgi site is reasonably comprehensive and maybe even a link to that would be a good start. I haven't offered anything up myself for the Django site as believe that it has to be the Django developers/community that first need to work out whether they see it as a viable option and when they are happy add a link to it. FWIW, people are using mod_wsgi quite happily with Django. I know of a couple of notable Django sites which are delaying looking at moving until mod_wsgi 2.0 is released as that will be the first version which allows Python code to be used to implement Apache HTTP authentication provider. For what those sites do, having that feature is critical and they can't move away from mod_python until mod_wsgi provides an equivalent mechanism. Graham > On Dec 5, 8:26 pm, Graham Dumpleton <[EMAIL PROTECTED]> > wrote: > > > On Dec 6, 12:04 pm, TP <[EMAIL PROTECTED]> wrote: > > > > I've been using Django for the past few months and had great results > > > with Apache and mod_python. However, I'd like to try and reduce the > > > amount of memory that is used by having multiple Apache's each with > > > their own copy of my application. I decided to try mod_fastcgi in > > > Apache and Django's FastCGI server capability. > > > Why have multiple Apache's if using mod_fastcgi. You should be able to > > hang multiple FASTCGI hosted applications hanging off the one Apache. > > > BTW, you might also want to look at mod_wsgi. Allows you to run Django > > in separate process of their own just like FASTCGI, but everything > > still managed by Apache without the need for you to separately start > > Django or use any supervisor system to keep it running. > > > Graham --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---