一、Tomcat网络处理线程模型
1、BIO+同步Servlet
Tomcat7及之前使用,一个请求,一个工作线程,CPU利用率低
2、APR+异步Servlet
Apr(Apache可移植运行库),是Apache HTTP服务器的支持库。JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作。Tomcat默认监听指定路径,如果有Apr安装,则自动启用。
3、NIO+异步Servlet
Tomcat8开始默认使用NIO方式,非阻塞读取请求信息,非阻塞处理下一个请求,完全异步。
NIO处理流程:

二、Tomcat参数调优
调优方向:

ConnectionTimeout:根据业务指标及性能来定义
acceptCount:超过Tomcat最大连接数后,堆积在操作系统等待连接的请求数量。Tomcat默认100,linux默认128。
总共可受理连接数 = acceptCount + maxConnections
主要调优最大线程数:maxThreads
理想的线程数量=(1+代码阻塞时间/代码执行时间)*CPU数量
Tomcat线程模型与参数调优
本文探讨了Tomcat从BIO到NIO的网络处理线程模型演进,包括BIO+同步Servlet、APR+异步Servlet及NIO+异步Servlet的不同处理方式。同时,深入分析了Tomcat参数调优策略,如ConnectionTimeout、acceptCount和maxThreads等关键参数的设置原则。
564

被折叠的 条评论
为什么被折叠?



