Hi Chris > -----Original Message----- > From: Christopher Schultz [mailto:ch...@christopherschultz.net] > Sent: Thursday, May 18, 2017 12:06 AM > To: users@tomcat.apache.org > Subject: Re: Can't get over 100 client connections? > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > John, > > On 5/16/17 1:57 PM, john.e.gr...@wellsfargo.com.INVALID wrote: > > All, > > > > I'm using Tomcat 7.0.75. > > > > I cannot get my connection or thread count over 100 no matter how much > > load I throw at the server. Currently I just have a dummy app > > deployed that doesn't do much except sleep for about 500ms and return > > a canned response. Initially I had maxThreads=20 with no explicit > > maxConnections. I could get the "current threads busy" > > metric to 20 easily. Then I raised it to 100 and was able to reach > > that number easily. Additionally, netstat told me I had 100 incoming > > connections to port 5114. However raising the maxThreads higher > > doesn't make any difference, nor does explicitly specifying > > maxConnections=200. In either case, I can only get 100 busy threads > > and 100 active connections. Once I reach that limit, the response > > times on the client start going up. The Tomcat server itself isn't > > stressed at all. CPU and GC are low. The client is on a different > > server in the same data center. > > > > I'm not going through a load balancer. I'm going directly to the > > connector below: > > > > > > <Connector port="5114" protocol="HTTP/1.1" SSLEnabled="true" > > maxConnections="200" maxThreads="200" maxKeepAliveRequests="100" > > keepAliveTimeout="10000" scheme="https" secure="true" > > clientAuth="true" sslProtocol="TLS" > > keystoreFile="/app/comp/myapp/certs/appcerttestkeystore" > > keystorePass="${keystore.password}" keyAlias="test" > > truststoreFile="/app/comp/myapp/certs/cacerts" > > truststorePass="${truststore.password}" > > allowUnsafeLegacyRenegotiation="false" ciphers="blah blah blah" /> > > What is the benchmark client and how do you invoke it? > > - -chris
LoadRunner --> vendor app using Commons HttpClient 4.x --> my Tomcat server. Tomcat is running an app I wrote to stub out the backend because we're not allowed to run load tests against it. I confirmed that Tomcat itself could handle more than 100 connections by running the vendor app under load, as well as a test from JMeter directly against my Tomcat server. Worked fine. It's the vendor app that appears to have hit a 100 connection limit. Interestingly, JMeter with the option to use HttpClient 4.x opens and closes a lot of connections. The exact same JMeter test with HttpClient 3.x selected reuses the connection the way I expect. If you're on the HttpClient users list, you might see a question from me! I don't understand why HttpClient is behaving the way it is. Thanks