| |
| Benchmarking Tomcat |
| ------------------- |
| |
| Tomcat benchmarks are more than welcome, and people who are interested are |
| encouraged to post results. |
| |
| This guide is designed to be a FAQ on how to configure Tomcat for maximum |
| performance. |
| |
| - Please upgrade to the latest available version of the Tomcat branch you |
| would like to benchmark. Small incremental performance improvements are often |
| made in each release. |
| |
| - Use the most recent JDK available whenever possible. Usually, results are |
| dependent on the JDK, so results obtained with different JDK should not be |
| compared directly. |
| |
| - When benchmarking Jasper, set it in production mode. To do that, add a |
| "development" init parameter (with value set to "false") in the Jasper |
| section of $CATALINA_HOME/conf/web.xml. This increases maximum throughtput |
| of JSPs by about 20%, as well as removing a synchronization point. |
| |
| - When benchmarking a web application which creates sessions on each request, |
| be careful about not exhausting memory by having too many active sessions. If |
| a max number of sessions is set in the manager to avoid memory problems, this |
| will lead to requests failing when session creation is denied. To avoid that, |
| either limit the total number of requests, or increase the JVM memory. |
| |
| - Do not enable access logging (unless that is required by the benchmark), |
| or any debug log. |
| |
| - Please post the benchmark web application used along with the results, so |
| that people may attempt to reproduce the results. |
| |
| - Definition of a standard webapp workload may be desirable, and contibutors |
| interested in doing that are welcome to discuss it on the Tomcat developer |
| mailing list. |