I am on holiday this time, so expect slow and delayed responses from me for at least another week and a half.
Couple of quick questions. Can you confirm you are in fact using nginx as a front end proxy to Apache/mod_wsgi as comment in configuration suggests and if so indicate what version of nginx and whether it is new enough to support HTTP/1.1 for proxying. If you are using nginx as proxy, does all traffic go via nginx or are there circumstances that Apache/mod_wsgi is still serving requests direct for some reason. Graham On 04/10/2014, at 10:33 PM, Damien de Lemeny <[email protected]> wrote: > > What version of Apache are you using? > Server version: Apache/2.2.22 (Debian) > > > What version of mod_wsgi are you using? > 3.3-4+deb7u1 > > > What Apache MPM are you currently using and what are the Apache MPM > > directives for that MPM set to? > Server MPM: Worker > > <IfModule mpm_worker_module> > StartServers 2 > MinSpareThreads 25 > MaxSpareThreads 75 > ThreadLimit 64 > ThreadsPerChild 25 > MaxClients 150 > MaxRequestsPerChild 0 > </IfModule> > > > Also what do you have set for the following Apache directives: > > Timeout 300 > KeepAlive Off # Nginx acts as reverse proxy > MaxKeepAliveRequests 100 # distribution's default > KeepAliveTimeout 5 # distribution's default > > > and finally, what are the actual mod_wsgi directives you are using and in > > particular the options to WSGIDaemonProcess directive. > WSGIRestrictEmbedded On > # In vhost : > WSGIScriptAlias / /projects/myapp/wsgi.py > WSGIDaemonProcess myapp processes=5 threads=5 umask=0002 > python-path=/projects/myapp/virtualenv/lib/python2.7/site-packages > WSGIProcessGroup myapp > > Sorry for the answering delay, I was on holiday. > > > Le mardi 16 septembre 2014 08:40:12 UTC+2, Graham Dumpleton a écrit : >> >> Lets see if we can reboot this conversation. >> >> What version of Apache are you using? >> >> What version of mod_wsgi are you using? >> >> What Apache MPM are you currently using and what are the Apache MPM >> directives for that MPM set to? For example: >> >> # prefork MPM >> # StartServers: number of server processes to start >> # MinSpareServers: minimum number of server processes which are kept spare >> # MaxSpareServers: maximum number of server processes which are kept spare >> # MaxRequestWorkers: maximum number of server processes allowed to start >> # MaxConnectionsPerChild: maximum number of connections a server process >> serves >> # before terminating >> <IfModule mpm_prefork_module> >> StartServers 5 >> MinSpareServers 5 >> MaxSpareServers 10 >> MaxRequestWorkers 250 >> MaxConnectionsPerChild 0 >> </IfModule> >> >> # worker MPM >> # StartServers: initial number of server processes to start >> # MinSpareThreads: minimum number of worker threads which are kept spare >> # MaxSpareThreads: maximum number of worker threads which are kept spare >> # ThreadsPerChild: constant number of worker threads in each server process >> # MaxRequestWorkers: maximum number of worker threads >> # MaxConnectionsPerChild: maximum number of connections a server process >> serves >> # before terminating >> <IfModule mpm_worker_module> >> StartServers 3 >> MinSpareThreads 75 >> MaxSpareThreads 250 >> ThreadsPerChild 25 >> MaxRequestWorkers 400 >> MaxConnectionsPerChild 0 >> </IfModule> >> >> # event MPM >> # StartServers: initial number of server processes to start >> # MinSpareThreads: minimum number of worker threads which are kept spare >> # MaxSpareThreads: maximum number of worker threads which are kept spare >> # ThreadsPerChild: constant number of worker threads in each server process >> # MaxRequestWorkers: maximum number of worker threads >> # MaxConnectionsPerChild: maximum number of connections a server process >> serves >> # before terminating >> <IfModule mpm_event_module> >> StartServers 3 >> MinSpareThreads 75 >> MaxSpareThreads 250 >> ThreadsPerChild 25 >> MaxRequestWorkers 400 >> MaxConnectionsPerChild 0 >> </IfModule> >> >> Also what do you have set for the following Apache directives: >> >> # >> # Timeout: The number of seconds before receives and sends time out. >> # >> Timeout 60 >> >> # >> # KeepAlive: Whether or not to allow persistent connections (more than >> # one request per connection). Set to "Off" to deactivate. >> # >> KeepAlive On >> >> # >> # MaxKeepAliveRequests: The maximum number of requests to allow >> # during a persistent connection. Set to 0 to allow an unlimited amount. >> # We recommend you leave this number high, for maximum performance. >> # >> MaxKeepAliveRequests 100 >> >> # >> # KeepAliveTimeout: Number of seconds to wait for the next request from the >> # same client on the same connection. >> # >> KeepAliveTimeout 5 >> >> and finally, what are the actual mod_wsgi directives you are using and in >> particular the options to WSGIDaemonProcess directive. >> >> Graham >> >> On 8 September 2014 17:24, Damien de Lemeny <[email protected]> wrote: >>> Okay, no hurry, no worries, I was assuming you either had a few days off or >>> more important things to do. It's not like I have subscribed for 24/7 >>> business service, I'll just be patient :) >>> >>> Le dimanche 7 septembre 2014 06:17:03 UTC+2, Graham Dumpleton a écrit : >>>> >>>> Just a warning in case you are wondering why you haven't got a response >>>> yet. I am on the tail end of a US trip and soon to fly home. This is why I >>>> haven't responded. I will get to this after I get back home and recover >>>> somewhat. >>>> >>>> Graham >>>> >>>> On 05/09/2014, at 3:51 PM, Damien de Lemeny <[email protected]> wrote: >>>> >>>>> I did, I actually made some improvements on our previously bloated >>>>> production setup based on your 2013 talk and a bit of guesswork, but I >>>>> don't recall those giving a clear answer to my question. >>>>> You usually oppose apache MPM process/thread configurations in embedded >>>>> modes to WSGIDaemonProcess process/thread configuration in daemon mode >>>>> (as far as I understood, correct me if I'm wrong). >>>>> I am just not clearly understanding what should happen to the former >>>>> directives when using the latter. >>>>> I don't really have a bottleneck to fix here, just trying to get a better >>>>> understanding of how things work. >>>>> >>>>> Thanks again for answering ! >>>>> >>>>> Le samedi 6 septembre 2014 00:16:06 UTC+2, Graham Dumpleton a écrit : >>>>>> >>>>>> Until I get a chance to response specifically about it, have you already >>>>>> watched: >>>>>> >>>>>> http://lanyrd.com/2012/pycon/spcdg/ >>>>>> http://lanyrd.com/2013/pycon/scdyzk/ >>>>>> >>>>>> Graham >>>>>> >>>>>> On 05/09/2014, at 2:58 PM, Damien de Lemeny <[email protected]> wrote: >>>>>> >>>>>>> Note : this is a crosspost from ServerFault >>>>>>> >>>>>>> >>>>>>> Could you please help me understand some aspects about the relation >>>>>>> between Apache MPM configuration directives and mod_wsgi's daemon mode ? >>>>>>> >>>>>>> How to best configure apache mpm when serving only WSGI applications >>>>>>> with WSGIDaemonProcess and WSGIRestrictEmbedded On ? (these mod_wgsi >>>>>>> directives are already — and correctly AFAICT — configured) >>>>>>> >>>>>>> Now what should I do with StartServers, Min/MaxSpareThreads and the >>>>>>> other Apache level MPM configuration directives ? >>>>>>> >>>>>>> As far as I understood, those are usually addressed to properly >>>>>>> configure processes and threads in prefork/worker embedded mode, but >>>>>>> what is their influence in daemon mode ? >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "modwsgi" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>>>> an email to [email protected]. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> Visit this group at http://groups.google.com/group/modwsgi. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "modwsgi" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send an >>>>> email to [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at http://groups.google.com/group/modwsgi. >>>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "modwsgi" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/modwsgi. >>> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/modwsgi. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/modwsgi. For more options, visit https://groups.google.com/d/optout.
