Tomcat 6 支持 NIO -- Tomcat的四種基於HTTP協議的Connector性能比較

Tomcat從5.5版本開始,支持如下四種Connector的配置分別爲: linux

Java代碼   收藏代碼
  1. 1.<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443"/>   
Java代碼   收藏代碼
  1. 2.<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"   
  2.               redirectPort="8443"/>   
Java代碼   收藏代碼
  1. 3.<Connector executor="tomcatThreadPool"   
  2.               port="8081" protocol="HTTP/1.1"   
  3.               connectionTimeout="20000"   
  4.               redirectPort="8443" />   
Java代碼   收藏代碼
  1. 4.<Connector executor="tomcatThreadPool"   
  2.               port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"   
  3.               connectionTimeout="20000"   
  4.               redirectPort="8443" />  

  

      咱們姑且把上面四種Connector按照順序命名爲 NIO, HTTP, POOL, NIOP 數據庫

      爲了避免讓其餘因素影響測試結果,咱們只對一個很簡單的jsp頁面進行測試,這個頁面僅僅是輸出一個Hello World。假設地址是 http://tomcat1/test.jsp apache

      咱們依次對四種Connector進行測試,測試的客戶端在另一臺機器上用ab命令來完成,測試命令爲: ab -c 900 -n 2000 http://tomcat1/test.jsp,最終的測試結果以下表所示(單位:平均每秒處理的請求數): tomcat

Java代碼   收藏代碼
  1. NIO   HTTP   POOL   NIOP   
  2. 281   65       208     365   
  3. 666   66      110      398   
  4. 692   65      66       263   
  5. 256   63      94       459   
  6. 440   67      145     363   

 

      由這五組數據不難看出,HTTP的性能是很穩定,可是也是最差的,而這種方式就是Tomcat的默認配置。NIO方式波動很大,但沒有低於280 的,NIOP是在NIO的基礎上加入線程池,多是程序處理更復雜了,所以性能不見得比NIO強;而POOL方式則波動很大,測試期間和HTTP方式同樣,不時有停滯。 併發

      因爲linux的內核默認限制了最大打開文件數目是1024,所以這次併發數控制在900。 jsp

      儘管這一個結果在實際的網站中由於各方面因素致使,可能差異沒這麼大,例如受限於數據庫的性能等等的問題。但對咱們在部署網站應用時仍是具備參考價值的. 性能

相關文章
相關標籤/搜索