Wednesday, February 10, 2016

Tomcat 7 request processing threading architecture and performance tuning

Tomcat has many parameters for performance tuning (see, but for some attribute descriptions it is not a 100% clear how some properties affect each other.

A pretty good explanation regarding acceptCount and maxThreads can be found here: 
But that article is missing a ... picture! That's what I tried to create here, with the numbers 1-5 indicating the steps described in the above article:

Just in case should the Netflix URL ever get lost and for easy reference, here's the 5 steps:

The Tomcat attribute maxThreads worked best in my case with value 50, as it won't saturate the machine/CPU. (due to too many workerthreads, many context-switches)

To set maxThreads when using Spring Boot + embedded Tomcat:

Other remarks

Referenced material

1 comment:

Satish said...

This post was very useful. Thanks for posting.

PS: per my understanding, the worker thread sends the response to the client. Is that right? May be it is useful to show in the diagram as step 6 the response from worker thread to the client.