Thankyou very much! On Sat, May 25, 2013 at 2:21 PM, Sorin Manolache <sor...@gmail.com> wrote:
> On 2013-05-25 10:05, Sindhi Sindhi wrote: > >> You have answered all my questions and thanks a lot. Had two questions >> more, appreciate your response. >> >> 1. >> As of now, my httpd.conf file has the below lines- >> # Server-pool management (MPM specific) >> #Include conf/extra/httpd-mpm.conf >> >> This means Apache does not read the httpd-mpm.conf file during startup. >> And >> so it uses the default settings for "Max number of requests it can >> support" >> and "Max number of threads it creates per child process" >> >> Where can I find what default values Apache uses for the following - >> - Upto how many concurrent requests will Apache support by default >> - Max number of threads that one child process creates >> >> For ex. if I want Apache to handle upto 400 concurrent requests at a time, >> how will I know that this 400 is within the default settings that Apache >> uses. >> > > > Have a look here, depending on your version of apache. > http://httpd.apache.org/docs/**2.2/mod/mpm_common.html<http://httpd.apache.org/docs/2.2/mod/mpm_common.html> > http://httpd.apache.org/docs/**2.4/mod/mpm_common.html<http://httpd.apache.org/docs/2.4/mod/mpm_common.html> > > The number of threads per process is given in ThreadsPerChild. > > You typically tweak > > ServerLimit (the maximum number of children that are simultaneously alive) > ThreadLimit (the maximum sum of alive threads in all children) > StartServers (how many children are created upon startup) > ThreadsPerChild > MaxRequestWorkers (or MaxClients in 2.2) (the maximum number of requests > that are served simultaneously) > MaxConnectionsPerChild (or MaxRequestsPerChild in 2.2) (after a child has > served that many requests, it exits and is potentially replaced with a new > child; avoids memleaks) > MinSpareThreads and MaxSpareThreads, the minimum and maximum number of > spare threads. > > There are some constraints on the arguments of these directives, which I > do not master. I think that MaxRequestWorkers <= ThreadsPerChild * > ServerLimit and that MaxRequestWorkers and ThreadLimit should be divisible > by ThreadsPerChild, but as I said, I do not master. If you get them wrong, > apache adjusts the values automatically and informs you about it upon > startup. > > I am not sure, maybe others on the list can confirm or deny, but I think > that apache does not distinguish between threads and processes in windows: > http://httpd.apache.org/docs/**2.4/mod/mpm_winnt.html<http://httpd.apache.org/docs/2.4/mod/mpm_winnt.html>or > http://httpd.apache.org/docs/**2.2/mod/mpm_winnt.html<http://httpd.apache.org/docs/2.2/mod/mpm_winnt.html>. > So I think that ServerLimit = 1 in Windows and probably > MaxConnectionsPerChild is not used or does not exist. > > You may also have a look at KeepAlive On|Off, MaxKeepAliveRequests and > KeepAliveTimeout > (http://httpd.apache.org/docs/**2.4/mod/core.html<http://httpd.apache.org/docs/2.4/mod/core.html> > ) > > If my module is on the internet with hundreds of thousands of possible > client IPs that issue one request and then leave, I set KeepAlive Off. If > my module is on the intranet and is accessed by a couple of webservices > that continuously issue requests, I set it On with a short timeout. > Performance-wise the KeepAlive directive makes a huge difference. > > > 2. >> My understanding is, once a request is completely processed, Apache frees >> the pool of only this request and does not free any other request's pool. >> And other request pools will be freed only when those requests are >> completely processed. Kindly confirm my understanding to be correct. >> > > Yes, it is correct. > > > Sorin > >