Mark,

It may not be important, but just to be clear, I'm not testing on localhost. My 
JMeter and Tomcat are on different machines, with 1 Gbps NIC interfaces between 
them.

Can you also please provide some pointers on the following:
- How did you disable session on your JSP?
- Did you observe anything that suggests that the client is not closing the 
connections?
I did not specify the implementation for the HTTP sampler that I configured 
with JMeter, and it is not set in my jmeter.properties file. So, going by 
JMeter's documentation, Apache HttpComponents HttpClient 4.x. should be in use.

Thanks
Piyush.

-----Original Message-----
From: Mark Thomas [mailto:ma...@apache.org] 
Sent: Wednesday, June 07, 2017 8:27 PM
To: Tomcat Users List <users@tomcat.apache.org>
Subject: Re: Tomcat 8/NIO performance discrepancies

On 06/06/17 09:10, Piyush Kumar Nayak wrote:
> Thanks, Mark.
> 
> Here are some additional details.

Thanks. These help a lot to make sure we are testing (at least roughly) the 
same thing.

> I am using Apache JMeter to inject load. I am using a simple hello-world JSP.
> 
> The test JMX simulates 100 concurrent user threads with a ramp-up of 5 secs 
> and uses an HTTP Cookie Manager, that reuses cookies for each user thread.

I've disabled session in the JSP for my test and used a simpler JSP.
That should amplify any difference in connector performance.

I'm also testing on localhost.

> I have disabled access log in tomcat. All the other server.xml settings are 
> the default.
> 
> 
> The BIO with Executor configuration we are using is:
> <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
>         maxThreads="150" minSpareThreads="4"/>
> 
> <Connector port="8080" protocol="org.apache.coyote.http11.Http11Protocol"
>                connectionTimeout="20000"
>                redirectPort="8443" />

FYI for anyone following along. That is a non-executor config. The connector 
needs to specify the executor it wants to used.

I do see odd behaviour with BIO + executor. It locks up very easily. It appears 
that the client isn't closing the connections. I don't see this problem with 
BIO but that may be related to how BIO without an executor handles large 
numbers of connections.

If I lower the client thread count, the odd behaviour stops and I do see 
notably higher throughput with BIO + executor. That is unexpected.

My initial thoughts are maybe a contention issue related to the thread pool. 
I'm continuing to investigate. I plan to look at performance first and then the 
locking up.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to