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