tomcat io 与 nio性能比较

来源:互联网 发布:linux怎么看cpu占用 编辑:程序博客网 时间:2024/06/06 06:55
tomcat连接器(conncector)可以配置成NIO方式 
今天没事对IO和NIO分别做了下测试 
配置如下: 
Java代码  收藏代码
  1. <Connector port="8080" protocol="HTTP/1.1"   
  2.                connectionTimeout="20000"   
  3.                redirectPort="8443"   
  4.                executor="tomcatThreadPool" />  

Java代码  收藏代码
  1. <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"   
  2.                connectionTimeout="20000"   
  3.                redirectPort="8443" />      
  

主要测试两类资源: 
动态页面(带数据库查询,偏重IO和cpu) 
静态页面(无数据库操作,主要考察处理简单请求的能力) 

结果如下: 
动态页面 
Java代码  收藏代码
  1. 并发数 100 200 300 400 600 800  
  2. IO     206 215 209 205 210 206  
  3. NIO    192 194 189 194 195 191  


静态页面 
Java代码  收藏代码
  1. 并发数 100 200 300 400 600 800  
  2. IO     941 306 361 361 347 400  
  3. NIO    927 313 318 703 286 914  


可以看出在处理动态资源时NIO的优势并不明显甚至还不如IO,其主要原因是动态资源,是IO和cpu密集型操作,导致很多请求都阻塞在CPU和IO上,所以socket IO只能干等着,发挥不出NIO的优势 

再看处理静态时NIO的表现,虽然不稳定但性能的提升还是很明显的,所以NIO常常用来处理请求多并且处理起来比较简单的应用中,如memcached
0 0
原创粉丝点击