Please consider the following details:
Scenario: We put load on tomcat (basically a simple http request) and in
response an http response sends 1 to show success.
Executor and Connector configuration (TOMCAT 6) with java version 1.4.2:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="300" minSpareThreads="100" maxIdleTime="120000" />
<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1"
acceptCount="100"
acceptorThreadCount="2"
processCache="-1"
enableLookups=”false”
connectionTimeout="120000"
socket.tcpNoDelay="true"
redirectPort="8443" />
Now I have tried many other configurations but I think this basic configuration
should work.What we eventually want is TPS around 1000.I have tried the
version where we don’t use the executor and have useExecutor=”false” in
connector settings and define maxthread and minspare thread count in
connector.In all cases TPS seems pretty much the same. More so I have also
tried using different protocol
protocol=”org.apache.coyote.http11.HTTP11NioProtocol” as well. We have heap
size increased to 1GB.
Load Testing and results:
100 users hit once we get 23 tps at max
100 users hit thrice with no gap we get 250 tps.
But as we go to increase the number of users and not iterations we get a
bottleneck of 25 tps at max and not more.As minSpareThread count is 25 by
default. I thought that it may very well explain the bottleneck but increasing
the minsparethread count doesn’t help at all we get same results.
What we want is a simple configuration that ensures high tps .
I am stuck here would really appreciate your help.Would be waiting for your
response.