Thanks, Mark.
I have been testing with 100 concurrent users. While the executor had the 
maxThreads set to 150, the connector without the executor was left to the 
default value (which should be 200). I did not have the 
disableKeepAlivePercentage attribute set, which means that it should take to 
the default value of 75.

So, the number of threads in use before the keepalive is disabled in case of 
non-executor connector should be 150. At 100 users, the no. of clients is at 
50% of the maxThread count. Unless I'm missing something here, I don't see why 
keep-alive would be disabled.
I'd appreciate if you can give me some pointers on how you can tell if requests 
are processed at the server end with keep-alive.

I'll try setting disableKeepAlivePercentage to 100, and see if that improves 
the performance.

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

On 07/06/17 22:28, Mark Thomas wrote:

<snip/>

> I'm still seeing significant differences in BIO with and without an 
> executor.
> 
> I'm still looking for the root cause. I have noticed that without an 
> executor I see far fewer keep-alive requests than I'd expect. That 
> could explain the difference, or some of it at least.

Further testing indicates that most, if not all, of the performance difference 
is down to the fewer number of requests processed using HTTP keep-alive. This 
is because BIO without an executor is subject to disableKeepAlivePercentage 
whereas BIO with an executor is not.

If the number of concurrent clients is kept below 75% of maxThreads, 
performance remains very similar.

The problems you are likely to experience in the real world without 
disableKeepAlivePercentage (i.e. if you use BIO with an executor) are described 
in this thread:

https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftomcat.markmail.org%2Fthread%2Fmcfdk2273v2fsh5k&data=02%7C01%7C%7C6816158122aa4914b20208d4ae744a1e%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636325261860429837&sdata=8t1j6lxgc3aTCDq45mXbH7LqedtIuRgPsrgqUKXyCrc%3D&reserved=0

The better tuning options are probably:
- increase maxThreads to max expected client concurrency + headroom
  or if your memory/CPU won't permit that, as high as you can
- increase disableKeepAlivePercentage

I'll look at BIO vs NIO next.

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