Hi Jeff, Thanks for quick response. We will check and do the needful That 100 is to prevent memory leak. Regards, Krishna. From: Jeff Trawick [mailto:trawick@xxxxxxxxx]
On Thu, Aug 21, 2014 at 4:39 PM, Vattikuti, Vamsi Krishna Venkata (STSD) <vamsik@xxxxxx> wrote:
Anyway... Once an httpd child process has reached 100 connections, it initiates a graceful shutdown, which means that instead of aborting current requests it will instead wait for current requests to finish, then exit. During the time that it is waiting for current requests to finish, new connections must be handled by other child processes. BUT you set ServerLimit to 1 (and other directives such as ThreadsPerChild and MaxClients are consistent with
allowing only one child process), so no other child process can be created during that time. Thus, once 100 connections are handled, new clients will be blocked until existing requests finish. --/-- My guess: Your Java application takes a long time (maybe forever?) to handle some requests. MaxRequestsPerChild makes it worse. If the Java requests are slow and eventually finish, the solution is to keep a steady set of httpd child
processes (having them gracefully exit when there are slow backend requests can be harmful) and increase the number of httpd threads/child processes to handle the load. If some Java requests hang, see how to handle that on the Tomcat side.
Enable server status with ExtendedStatus On and watch what happens -- whether or not certain requests handled by the Java application take a relatively long time, tieing up some or all of your very limited number of httpd threads. -- Born in Roswell... married an alien... |