今天在osc上看到對(duì)Tomcat的四種基于HTTP協(xié)議的Connector性能比較 具體內(nèi)容如下: <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
為了不讓其他因素影響測(cè)試結(jié)果,我們只對(duì)一個(gè)很簡(jiǎn)單的jsp頁面進(jìn)行測(cè)試,這個(gè)頁面僅僅是輸出一個(gè)Hello World。假設(shè)地址是 http://tomcat1/test.jsp
我們依次對(duì)四種Connector進(jìn)行測(cè)試,測(cè)試的客戶端在另外一臺(tái)機(jī)器上用ab命令來完成,測(cè)試命令為: ab -c 900 -n 2000 http://tomcat1/test.jsp ,最終的測(cè)試結(jié)果如下表所示(單位:平均每秒處理的請(qǐng)求數(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的默認(rèn)配置。NIO方式波動(dòng)很大,但沒有低于280 的,NIOP是在NIO的基礎(chǔ)上加入線程池,可能是程序處理更復(fù)雜了,因此性能不見得比NIO強(qiáng);而POOL方式則波動(dòng)很大,測(cè)試期間和HTTP方式一 樣,不時(shí)有停滯。
由于linux的內(nèi)核默認(rèn)限制了最大打開文件數(shù)目是1024,因此此次并發(fā)數(shù)控制在900。
盡管這一個(gè)結(jié)果在實(shí)際的網(wǎng)站中因?yàn)楦鞣矫嬉蛩貙?dǎo)致,可能差別沒這么大,例如受限于數(shù)據(jù)庫的性能等等的問題。但對(duì)我們?cè)诓渴鹁W(wǎng)站應(yīng)用時(shí)還是具有參考價(jià)值的。
<Connector
executor="tomcatThreadPool"
port="8090"
redirectPort="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
compression="on"
compressionMinSize="2048"
enableLookups="false"
acceptCount="1000"
URIEncoding="UTF-8"
connectionTimeout="40000" /> 連接器使用的線程池的名子:executor="tomcatThreadPool" 連接器端口 :port="8090" 連接器使用的傳輸方式 :protocol="org.apache.coyote.http11.Http11NioProtocol" 傳輸時(shí)是否支持壓縮 :compression="on" 壓縮的大小 :compressionMinSize="2048" <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="800" minSpareThreads="400" maxSpareThreads="700"/> 線程池名: name="tomcatThreadPool" 線程前綴: namePrefix="catalina-exec-" 最大產(chǎn)生線程數(shù):maxThreads="800" 最小初始現(xiàn)程數(shù):minSpareThreads="400"
最大初始現(xiàn)程數(shù):minSpareThreads="700" 源:Tomcat的四種基于HTTP協(xié)議的Connector性能比較 來源:https://www./content-4-289901.html
|