Curious to find the maximum number of concurrent requests that can be fulfilled by my app deployed on tomcat.
What I know:
In tomcat configuration there are some parameters to help me with that, like:
acceptCount -- The maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full will be refused. The default value is 100.
MaxConnections -- The maximum number of connections that the server will accept and process at any given time. When this number has been reached, the server will accept, but not process, one further connection.
What I'd like to know:
Are the above parameters enough to know max number of 'concurrent' requests that my app can handle?
Lets say max connections are 200, then that means 200 threads will be spawned (1 for each request) if 200 concurrent requests comes in.
Then let's say, these all are CPU intensive requests/operations. So isn't it performance degrading to spawn 200 threads? I believed that if requests/operations are CPU intensive then the max number of threads spawned out of JVM should complement the number of cores. (say 16).