tomcat连接器(conncector)可以配置成NIO方式
今天没事对IO和NIO分别做了下测试
配置如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
executor="tomcatThreadPool" />
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
主要测试两类资源:
动态页面(带数据库查询,偏重IO和cpu)
静态页面(无数据库操作,主要考察处理简单请求的能力)
结果如下:
动态页面
并发数 100 200 300 400 600 800
IO 206 215 209 205 210 206
NIO 192 194 189 194 195 191
静态页面
并发数 100 200 300 400 600 800
IO 941 306 361 361 347 400
NIO 927 313 318 703 286 914
可以看出在处理动态资源时NIO的优势并不明显甚至还不如IO,其主要原因是动态资源,是IO和cpu密集型操作,导致很多请求都阻塞在CPU和IO上,所以socket IO只能干等着,发挥不出NIO的优势
再看处理静态时NIO的表现,虽然不稳定但性能的提升还是很明显的,所以NIO常常用来处理请求多并且处理起来比较简单的应用中,如memcached
分享到:
相关推荐
SimpleSocketServer Java IO | NIO样本使用Java IO和NIO设置自己的Socket Server(待办事项) 深入了解Tomcat和Jetty的实现方式(希望如此)
- **NIO简介**:NIO(New IO)自JDK 1.4引入以来,为Java提供了非阻塞IO的支持,这对于提高服务端应用的性能至关重要。NIO的核心特性包括缓冲区(Buffer)、通道(Channel)和选择器(Selector)。 - **非阻塞IO**:非...
apr是安装起来最困难的模式,但可以从操作系统级别解决异步的IO问题,大幅度提高性能。 3.2.1. 启动NIO模式:可以通过修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol...
在Tomcat服务器的实现中,NIO模式被用来提高其性能和并发能力,尤其是在高并发场景下,相比传统的BIO( Blocking I/O)模式,NIO具有显著优势。 Tomcat是Apache软件基金会的Jakarta项目下的一个开源Web应用服务器,...
- APR(Apache Portable Runtime):利用操作系统的异步IO,性能最优,但安装复杂。在Win7及以上系统或Linux安装apr和native后自动启用。 4. 查看运行模式 Tomcat启动日志中的`Starting ProtocolHandler`信息可...
### Netty与Tomcat功能比较 #### 一、概述 Netty和Tomcat都是Java领域内非常著名的服务器框架,但它们的设计目标和技术实现路径存在显著差异。本文将深入探讨Netty与Tomcat之间的区别,以及Netty之所以备受青睐的...
它又分为BIO Http Connector与NIO Http Connector两种,后者提供非阻塞IO与长连接Comet支持。 AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http服务器之间通信专门定制的协议,能提供较高的通信速度...
Tomcat作为最常用的Java Web服务器,随着并发量越来越高,Tomcat的性能会急剧下降,那有没有什么方法来优化Tomcat在高并发环境下的性能呢? Tomcat运行模式 Tomcat的运行模式有3种。 1.bio模式 默认的模式,性能非常...
首先,Connector按照处理连接的方式可以分为不同的协议类型,包括BIO(阻塞IO)、NIO(非阻塞IO)、APR(Apache Portable Runtime)。BIO协议的Connector在处理请求时,会为每个请求分配一个线程,直到请求完成。这...
- **Tomcat 7.x**:推荐使用JDK 6或以上版本,但考虑到安全性与性能,建议使用JDK 7或以上。 - **Tomcat 6.x**:推荐使用JDK 5或以上版本,但对于最佳体验,建议至少使用JDK 6。 #### 三、Tomcat各版本特性 ##### ...
- **NIO与TCP/IP套接字**:NIO可以方便地与TCP/IP套接字结合,实现高效的网络通信。 总之,Java NIO非阻塞服务端与客户端通信的关键在于利用非阻塞IO和选择器,实现高效的多路复用,有效利用系统资源,提升并发...
总的来说,Java NIO与零拷贝技术的结合,为开发者提供了更高效率、更低资源消耗的I/O处理手段,尤其在处理大数据和高并发场景时,其优势更为明显。理解并掌握这些知识,对于提升Java应用程序的性能至关重要。
nio 是 JDK 1.4 开始支持的同步阻塞或同步非阻塞 IO。aio 是 JDK 7 开始支持的异步非阻塞 IO。apr 是 Tomcat 将以 JNI 的形式调用 Apache HTTP 服务器的核心动态链接库来处理文件读取或网络传输操作。 三、...
网络IO的基本概念以及基础原理 ...NIO在多人聊天室中的应用是指使用NIO来处理聊天室中的IO操作,提高了系统的性能和可靠性。NIO可以处理大量的IO操作,不需要阻塞线程,提高了系统的性能和可靠性。
它又分为BIO Http Connector与NIO Http Connector两种,后者提供非阻塞IO与长连接Comet支持。 AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http服务器之间通信专门定制的协议,能提供较高的通信速度...
7. **NIO和APR**:Tomcat使用Java NIO(非阻塞I/O)提供更高的并发性能,同时,通过Apache Portable Runtime (APR)库可以进一步提升性能。因此,编译时需要相关库的jar文件。 8. **其他第三方库**:Tomcat在实现...
NIO与传统的IO模型(-blocking I/O)不同,传统IO基于缓冲区的读写,而NIO引入了通道(Channels)和缓冲区(Buffers)的概念,以及非阻塞I/O操作,极大地提升了性能。 标题"nio演示代码"表明我们将探讨NIO的实际...
Servlet API和NIO(New IO)是Java编程中两个重要的概念,它们在处理网络I/O操作上有着不同的优势。Servlet API是Java服务器端编程的重要组成部分,主要用于构建动态Web应用程序,而NIO则是一种非阻塞的I/O模型,...
2.默认http与ajp请求实现non-blocking技术,即NIO技术。 3.多个应用发布的时候可以先打成jar包,然后打成一个总的war发布。(这句翻译不太准,意思大概是这样子的) 4.默认支持应用工程字符集为UFT-8 5.提升了日志...
| NIO | 非阻塞式 IO,适合高并发场景,性能较好。 | | NIO2 | 基于 NIO,增加了对新功能的支持,如文件锁定。 | | APR/本地 | 使用 APR 库,适用于高性能需求,依赖于操作系统级别的支持。 | #### 六、结论 通过...