一、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数量