Amol Puglia wrote:
Hi,

Thanks for the information.


Is it advisable to use worker mpm or prefork mpm?

The Apache httpd on-line documentation or support mailing list would be a better place for that question. Without guarantees, what I remember : the prefork mpm is very stable, and the worker mpm was said (a while ago) to be rather experimental and not recommended for production sites.
(But that's old info and it may have changed since).
Check it with the on-line documentation for your version.

The worker mpm is supposed to be more scalable for very large loads, because it uses threads versus children processes, so its memory and resource usage is probably less.


If i use worker mpm will it resolve this issue?
It is not possible to answer that without knowing what your issue really is.
Pid sent some comments on your configuration.  Read them and try them out first.

Do not start changing the basics of your setup, because then you'll never know what your problem was and what fixed it.



Please let me know what shall i do if i have to use worker mpm.

I would not do that.  Resolve the current issue first.
You can later try with the worker mpm, to see if in your case it works better.

You have not told us what kind of load (number of requests per second, average time to process one request) you expect your server to be submitted to, so it's hard to say more right now.

In simple cases, the basic rule is : for each request that is being processed /at the same time/ by your front-end Apache httpd, there will be one active AJP connection to a Tomcat back-end, and a Tomcat thread active to process that request. If your front-end is a prefork type, then the number of requests being processed at the same time is limited by the number of Apache children (MaxClients). If all front-end requests result in a call to a back-end Tomcat (or several Tomcats), then the (total) number of threads available in all the Tomcat(s) should not be lower than the MaxClients on your front-end server. (In a simple Tomcat configuration, that would be the total of all the maxThreads of all your AJP Connectors).

Of course, the total number of Apache children and Tomcat threads that can be active at the same time, depends on the resources of your host(s), and on your application.

I find that a simple picture often helps :

browser --> HTTP --> Apache httpd --> AJP --> Tomcat Connector --> thread
browser                 (child)   --> AJP --> Tomcat Connector --> thread
browser                           --> AJP --> Tomcat Connector --> thread
...

One browser request results in one HTTP connection to Apache httpd, and one AJP connection from httpd to a Tomcat Connector, which fires one thread to handle the request. The request takes a certain time to be processed and answered, during which time other browser requests arrive at the front-end. The point is to balance all these elements. If one of them is too large, you are wasting resources; if one of them is too small, you are creating a bottleneck.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to