We have been testing different connectors of tomcat for performance. We have tested the following server versions:
- Tomcat 7.077 - Tomcat 8.0.44 - Tomcat 8.0.32 - Tomcat 8.5.14 with the following HTTP connectors: - BIO - BIO with Executor - NIO - NIO with Executor Our observation is that NIO is up to 15% faster than BIO. But BIO with Executor is up to 65% faster than BIO. Using a shared executor thread pool with NIO does not improve the performance. We have tried some variations of connector attribute with Tomcat 8 (maxThreads, acceptorThreadCount), but nothing brings us close to the performance that we can get with BIO with Executor. We have upgraded to Tomcat 8.5, and can't seem to get it to perform as well as Tomcat 7 using BIO with Executor, which is what we were using earlier. I would appreciate any help with the following: - Why is the executor not boosting the performance for NIO, as it is for BIO? - BIO is not available as an option with Tomcat 8.5. Why has it been removed? Is there any way to get it back ? I'd be happy to share any other details from my testing for any clarification. Regards, Piyush.