<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443"/>
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443"/>
<Connector executor="tomcatThreadPool"
port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector executor="tomcatThreadPool"
port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
们姑且把上面四种Connector按照顺序命名为 NIO, HTTP, POOL, NIOP
为了不让其他因素影响测试结果,我们只对一个很简单的jsp页面进行测试,这个页面仅仅是输出一个Hello World。假设地址是 http://tomcat1/test.jsp
我们依次对四种Connector进行测试,测试的客户端在另外一台机器上用ab命令来完成,测试命令为: ab -c 900 -n 2000 http://tomcat1/test.jsp,最终的测试结果如下表所示(单位:平均每秒处理的请求数):
NIO HTTP POOL NIOP
281 65 208 365
666 66 110 398
692 65 66 263
256 63 94 459
440 67 145 363
由这五组数据不难看出,HTTP的性能是很稳定,但是也是最差的,而这种方式就是Tomcat的默认配置。NIO方式波动很大,但没有低于280 的,NIOP是在NIO的基础上加入线程池,可能是程序处理更复杂了,因此性能不见得比NIO强;而POOL方式则波动很大,测试期间和HTTP方式一 样,不时有停滞。
由于linux的内核默认限制了最大打开文件数目是1024,因此此次并发数控制在900。
尽管这一个结果在实际的网站中因为各方面因素导致,可能差别没这么大,例如受限于数据库的性能等等的问题。但对我们在部署网站应用时还是具有参考价值的。
分享到:
相关推荐
tomcat自带还有NIO的模型,另外也可以调用APR的库来实现操作系统级别控制。 NIO模型是内置的,调用很方便,只需要将上面配置文件中protocol修改成org.apache.coyote.http11.Http11NioProtocol,重启即可生效。上面...
Tomcat原生使用Java NIO进行网络通信,但在高并发场景下,APR通过利用操作系统提供的原生API,如epoll(Linux)或kqueue(FreeBSD),可以提供更好的性能。此外,APR还支持直接使用操作系统级别的SSL/TLS加速,...
tomcat自带还有NIO的模型,另外也可以调用APR的库来实现操作系统级别控制。 NIO模型是内置的,调用很方便,只需要将上面配置文件中protocol修改成org.apache.coyote.http11.Http11NioProtocol,重启即可生效。上面...
Tomcat,作为一款广泛使用的开源Java Servlet容器,其内部也提供了多种I/O模型来处理网络连接,包括BIO、NIO和Apr(Apache Portable Runtime)等。NIO模型是Tomcat为了应对高并发场景而引入的,它利用Java NIO库进行...
2. **NIO和 APR 改进**:在连接器层,Tomcat 7改进了非阻塞I/O(NIO)支持,并且增强了Apache Portable Runtime (APR)库的集成,以提高性能和稳定性。 3. **更好的管理工具**:提供了更强大的管理和监控工具,如`...
在本文中,我们将详细介绍Tomcat的三种主要运行模式:BIO(Blocking I/O)、NIO(Non-blocking I/O)和 APR(Apache Portable Runtime),并探讨它们的配置方法。 #### 1. BIO (Blocking I/O) BIO 模式是最传统的I...
Tomcat支持三种运行模式:BIO、NIO 和 APR,每种模式都有其特点和适用场景: - **BIO (Blocking I/O)**:这是Tomcat默认的模式,每个连接都会占用一个独立的线程来处理请求,适用于低并发场景。但在高并发环境下,...
这个扩展可以显著提高Tomcat在处理SSL连接和NIO(非阻塞I/O)时的性能。"tomcat-native-1.2.25-src-build" 指的是该扩展的源代码版本1.2.25,用于编译生成适用于不同操作系统的本地库文件。 【编译过程】:下载的...
Tomcat 的 Connector 运行模式有多种,包括 bio、nio、aio、apr 等。其中,bio 是传统的 Java I/O 操作,同步且阻塞 IO。nio 是 JDK 1.4 开始支持的同步阻塞或同步非阻塞 IO。aio 是 JDK 7 开始支持的异步非阻塞 IO...
通常,Tomcat 在默认配置下运行在 NIO (Non-blocking Input/Output) 模式下,但在处理大量静态文件请求时,这种模式的效率并不理想。APR 模块则利用 JNI (Java Native Interface) 技术与操作系统直接交互,提高响应...
Tomcat 7和Tomcat 8的默认protocol处理逻辑不同,根据是否有APR本地库的支持来选择BIO或APR,而在Tomcat 8.5和Tomcat 9.0,不再支持BIO。 连接数和线程池的配置直接关联到Tomcat的性能和资源消耗。连接数决定了...
Tomcat 支持三种协议:BIO(Blocking I/O)、NIO(Non-blocking I/O)和 APR (Apache Portable Runtime),它们在性能和资源利用上有显著差异。BIO 是最简单的,但效率较低;NIO 支持非阻塞 I/O,性能优于 BIO;APR ...
在Tomcat中,除了默认的BIO(Blocking I/O)模型,还提供了NIO和APR(Apache Portable Runtime)两种选择。NIO模式下,Tomcat可以更高效地处理大量短连接,尤其适合高并发的Web服务。NIO配置通常在`server.xml`文件...
Tomcat启动日志中的`Starting ProtocolHandler`信息可显示当前使用的运行模式,如`http-bio-8080`、`http-nio-8080`或`http-apr-8080`。 5. 启动NIO模式 修改`server.xml`中`Connector`节点的`protocol`属性为`...
### Apache Tomcat 8 优化指南 #### 一、引言 Apache Tomcat 是一个开源的轻量级 Web 应用服务器,在中小型系统和并发访问用户不是特别多的场合下被普遍使用,是开发和调试 JSP 程序的首选。Tomcat 8 作为该系列的...
2. 链接管理:`AprSocketAcceptor`(若使用了Apache Portable Runtime,即APR库)或`NioEndpoint`(Java NIO实现)用于监听指定端口,接收新进来的TCP连接,并分配到工作线程进行处理。 3. 处理线程池:NioEndpoint...
3. **NIO和 APR连接器**:Tomcat 7提供了两种连接器选项,即基于Java的NIO(非阻塞I/O)和APR(Apache Portable Runtime),后者利用操作系统级别的特性提高性能。APR连接器通过JNI接口与操作系统进行更紧密的交互,...
NIO和APR通常比Bio更能处理大量并发连接。 5. **超时设置**:`connectionTimeout`表示服务器等待客户端完成请求的最大时间。如果这个时间过短,可能会导致连接过早关闭;如果过长,可能导致资源浪费。 6. **监控和...