Tomcat 6 支持 NIO -- Tomcat的四種基于HTTP協(xié)議的Connector性能比較
Tomcat從5.5版本開始,支持以下四種Connector的配置分別為:
<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,最終的測試結果如下表所示(單位:平均每秒處理的請求數(shù)):
NIO HTTP POOL NIOP
281 65 208 365
666 66 110 398
692 65 66 263
256 63 94 459
440 67 145 363
由這五組數(shù)據(jù)不難看出,HTTP的性能是很穩(wěn)定,但是也是最差的,而這種方式就是Tomcat的默認配置。NIO方式波動很大,但沒有低于280 的,NIOP是在NIO的基礎上加入線程池,可能是程序處理更復雜了,因此性能不見得比NIO強;而POOL方式則波動很大,測試期間和HTTP方式一樣,不時有停滯。
由于linux的內(nèi)核默認限制了最大打開文件數(shù)目是1024,因此此次并發(fā)數(shù)控制在900。
盡管這一個結果在實際的網(wǎng)站中因為各方面因素導致,可能差別沒這么大,例如受限于數(shù)據(jù)庫的性能等等的問題。但對我們在部署網(wǎng)站應用時還是具有參考價值的。
posted on 2009-10-09 15:25
零全零美 閱讀(3347)
評論(0) 編輯 收藏 所屬分類:
tomcat