Graham Dumpleton
graham.dumpleton at gmail.com
Wed Dec 23 16:03:27 EST 2009
2009/12/23 bharath venkatesh <bharathv6.project at gmail.com>: >>I note you have taken this off list. > sorry it is was not intended to take it off the list ,it was by mistake. >>How many Django applications? > we are using 4-5 Django application and we are using Django 0.97 (not sure > if this version is thread safe ) No it isn't regarded as thread safe. I'll comment later when have time. Graham >>There are so many variables to all of this as far as knowing what is >>the best configuration and unfortunately only you know your >>applications so is going to be very hard for me to say that one way is >>going to be the best. > I understand ,we will do lot of testing and tuning before we arrive at the > final configuration .Thanks a lot for the help. > Thanks, > Bharath > > > On Wed, Dec 23, 2009 at 4:48 PM, Graham Dumpleton > <graham.dumpleton at gmail.com> wrote: >> >> I note you have taken this off list. >> >> 2009/12/23 bharath venkatesh <bharathv6.project at gmail.com>: >> > we are using apache for mainly mod python and django applications , >> > small >> > images such as logos are also served ( can be migrated ) and also one >> > mod_php application which receives very few request . >> >> How many Django applications? >> >> If many or memory requirements of each are large, then using embedded >> mode is a bad idea as only option is to have a copy of each in every >> process. So, if using one Apache for many Django instances, better off >> using daemon mode as gives better control over each application and >> can provision less processes for Django instances which are less used >> so overall memory is less. You can also make use of multithreading >> where appropriate, that is, can handle greater capacity requests where >> most of the time requests are stuck waiting on databases. Your code >> though then has to be thread safe. >> >> There are so many variables to all of this as far as knowing what is >> the best configuration and unfortunately only you know your >> applications so is going to be very hard for me to say that one way is >> going to be the best. >> >> Graham >> >> > On Wed, Dec 23, 2009 at 4:25 PM, Graham Dumpleton >> > <graham.dumpleton at gmail.com> wrote: >> >> >> >> What else is your Apache being used for? If it is being use for other >> >> stuff it may not be possible to tune Apache embedded in a way that is >> >> best for Python web application as that will be too detriment of other >> >> stuff you are hosting. >> >> >> >> So, are you hosting static media on same Apache or using a separate >> >> web server such as nginx for static media? Are you running PHP using >> >> mod_php on same Apache? Are you running anything else using any >> >> fastcgi/scgi/ajp hosting mechanisms? >> >> >> >> In short, unless that Apache is dedicated to just the Python web >> >> application, the trouble of trying to tune Apache for it is no worth >> >> the trouble and just better off using daemon mode thus allowing you to >> >> separately control things. >> >> >> >> BTW, depends a bit on what your site is doing, but using nginx proxy >> >> front end can be very advantageous as isolates Apache from slow >> >> clients allowing Apache processes/threads to be better utilised. >> >> >> >> Graham >> >> >> >> 2009/12/23 bharath venkatesh <bharathv6.project at gmail.com>: >> >> > Hi Graham, >> >> > >> >> > Thanks for the link it was very informative >> >> > - Technically running embedded mode with prefork MPM should offer the >> >> > best >> >> > performance, especially for machines with many cpus/cores. >> >> > - just because mod_wsgi embedded mode and prefork MPM may be the >> >> > fastest >> >> > solution out there for Apache >> >> > As above lines (from link ) suggests ,can we use mod_wsgi embedded >> >> > mode >> >> > and >> >> > prefork MPM (as meantioned that it is best ) ?and tune apache not to >> >> > load >> >> > libraries and intialise every thime (as our apache is already >> >> > running >> >> > as >> >> > prefork MPM and also our machines are multi core (8 cores) and has 16 >> >> > AG >> >> > Ram) or we have to use mod_wsgi in daemon mode to pervent huge >> >> > loading >> >> > and >> >> > intialising time ? but as daemon mode is used with worker MPM we >> >> > have >> >> > to >> >> > recompile apache >> >> > Thanks, >> >> > Bharath >> >> > >> >> > On Wed, Dec 23, 2009 at 3:19 AM, Graham Dumpleton >> >> > <graham.dumpleton at gmail.com> wrote: >> >> >> >> >> >> 2009/12/23 bharath venkatesh <bharathv6.project at gmail.com>: >> >> >> > will mod wsgi in Daemon mode solve this issue as loading >> >> >> > libraries >> >> >> > and >> >> >> > initialising is done only once ? >> >> >> >> >> >> Maybe. >> >> >> >> >> >> As documented in: >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> http://blog.dscpl.com.au/2009/03/load-spikes-and-excessive-memory-usage.html >> >> >> >> >> >> the OP is having problems because of how embedded mode Python >> >> >> applications work in Apache. This may be exacerbated by using >> >> >> prefork >> >> >> MPM with Apache. Same issues come up with mod_wsgi embedded mode as >> >> >> with mod_python if you do not configure your Apache correctly for >> >> >> fat >> >> >> Python web applications. If you are limited in being able to do that >> >> >> because Apache is heavily used for static file serving or mod_php, >> >> >> you >> >> >> really should use mod_wsgi daemon mode instead as described in that >> >> >> post. >> >> >> >> >> >> Why daemon mode will help is fixed number of persistent processes >> >> >> and >> >> >> more specifically defaulting to one process, so you only incur >> >> >> startup >> >> >> cost once and not for many processes, or in case of embedded mode >> >> >> also >> >> >> not when the processes get recycled as is default for Apache. >> >> >> >> >> >> Graham >> >> >> >> >> >> > On Tue, Dec 22, 2009 at 5:13 PM, bharath venkatesh >> >> >> > <bharathv6.project at gmail.com> wrote: >> >> >> >> >> >> >> >> Hi, >> >> >> >> >> >> >> >> Django with mod python is taking time loading libraries . I >> >> >> >> am >> >> >> >> using >> >> >> >> python open source libraries like montylingua , simplejson and >> >> >> >> django >> >> >> >> is >> >> >> >> taking >> >> >> >> time loading these libraries . >> >> >> >> >> >> >> >> When django is run using python manage.py runserver first request >> >> >> >> takes >> >> >> >> time but rest of the requests doesn't take time ( quite fast ) >> >> >> >> ,which >> >> >> >> is >> >> >> >> acceptable but when django is used along with apache and >> >> >> >> mod_python >> >> >> >> it >> >> >> >> takes >> >> >> >> time as much time as django takes for first request when run >> >> >> >> using >> >> >> >> python >> >> >> >> manage.py runserver for almost every request. >> >> >> >> >> >> >> >> How to avoid this as our performance is greatly hindered by this >> >> >> >> behaviour >> >> >> >> >> >> >> >> is it possible to cache these external open source libraries ? >> >> >> >> >> >> >> >> Thanks in Advance, >> >> >> >> Bharath >> >> >> > >> >> >> > _______________________________________________ >> >> >> > Mod_python mailing list >> >> >> > Mod_python at modpython.org >> >> >> > http://mailman.modpython.org/mailman/listinfo/mod_python >> >> >> > >> >> >> > >> >> > >> >> > >> > >> > > >
|