Our configuration consists of the following components (all of them are running on a single Windows Server 2003 machine):
We are load testing the server with relatively simple requests.
It seems that under load (~8000 requests we are sending per minute from our load simulator) - we have a delay between apache web server and the mod_jk component.
We enabled the following types of access logs: apache, mod_jk, tomcat.
In tomcat and in mod_jk access logs we always see response times of 0 seconds.
However in apache_access we almost always see response times of 3-6 seconds for the matching requests.
We figured out that these delayed requests arrive to apache at a time X, but arrive to mod_jk/tomcat only at time X + (3-6 seconds).
We are trying to figure out what is causing these delays.
We tried switching from mod_jk to mod_proxy and mod_proxy_ajp, however we didn’t see any major gain in the performance.
On the other hand, when we “disabled” apache and configured tomcat to act as web server (in addition to its role as a java servlet container) the response times were very fast and stayed at the 0 seconds zone.
Make sure you configure both Apache httpd and mod_jk to handle the traffic.
This means, the number of threads(workers) that httpd has will impact your system.
Also, in high concurrency, how you configure KeepAlive is important. There is a chance that Apache is using its threads waiting for the next request on idle connections, while active connections are not being handled.
Posting your configuration files may be a good idea.