On 9/17/07, Brett Hoerner <[EMAIL PROTECTED]> wrote: > On Sep 17, 2007, at Sep17, 5:57:05PM, Matt Bartolome wrote: > > This would be 50 (max clients) X 150 (requests per child) = 7500 > > max connections > > > > At this point I'm guessing we should probably add another front end > > apache server. > > Well, the client should be properly closing the connections to begin > with. You should really only have 50 max connections at a time (1 > per client, which is then closed when finished). > > As Jeremy said, > > >> You're likely putting a bandaid on a different problem. You'll run > >> into this problem again if you add more MaxChildren or more apache > >> front ends.
Definitely something I want to avoid. Thanks for pushing me towards a real fix! > >> > >> Verify what python memcached client you're using and which version it > >> is. Verify what version of memcached you're running. Come > >> back. :) Ok, I'm using python-memcached 1.39, memcached 1.2.2, and apache 2.0.55-4ubuntu2.1 Here is the section of my apache2.conf that has all the goodies: # Timeout: The number of seconds before receives and sends time out. Timeout 300 # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. KeepAlive Off # 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 15 ## ## Server-Pool Size Regulation (MPM specific) ## # 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 # MaxClients ........... maximum number of server processes allowed to start # MaxRequestsPerChild .. maximum number of requests a server process serves <IfModule prefork.c> ServerLimit 50 StartServers 20 MinSpareServers 10 MaxSpareServers 25 MaxClients 50 MaxRequestsPerChild 300 </IfModule> # pthread MPM # StartServers ......... initial number of server processes to start # MaxClients ........... maximum number of server processes allowed 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 # MaxRequestsPerChild .. maximum number of requests a server process serves <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> # perchild MPM # NumServers ........... constant number of server processes # StartThreads ......... initial number of worker threads in each server process # MinSpareThreads ...... minimum number of worker threads which are kept spare # MaxSpareThreads ...... maximum number of worker threads which are kept spare # MaxThreadsPerChild ... maximum number of worker threads in each server process # MaxRequestsPerChild .. maximum number of connections per server process (then it dies) <IfModule perchild.c> NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 AcceptMutex fcntl </IfModule> > > Regards, > Brett > Thanks guys! Matt
