調(diào)整Tomcat的并發(fā)線(xiàn)程數(shù)到5000+
1. 調(diào)整server.xml的配置
先調(diào)整maxThreads的數(shù)值,在未調(diào)整任何參數(shù)之前,默認(rèn)的并發(fā)線(xiàn)程可以達(dá)到40。
調(diào)整此項(xiàng)后可以達(dá)到1800左右。
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"
maxThreads="32000"
/>
再試試使用非阻塞的庫(kù)。
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"
maxThreads="32000"
protocol="org.apache.coyote.http11.Http11NioProtocol"
/>
結(jié)果和不使用非阻塞的庫(kù)差不多。
線(xiàn)程數(shù)在2000左右。
2.調(diào)整用戶(hù)打開(kāi)的文件數(shù)限制
ulimit -n 32768
調(diào)整后,線(xiàn)程數(shù)增加到了5900左右。
3.減少緩沖區(qū)大小到1024
...
maxThreads="32000"
socket.appReadBufSize="1024"
socket.appWriteBufSize="1024"
bufferSize="1024"
...
無(wú)效果
綜合來(lái)看,還是達(dá)不到10000并發(fā)。下次增加內(nèi)存再試試。
當(dāng)前的內(nèi)存配置是1024M。
另外,在server.xml中的參數(shù)acceptCount ,保存的是,當(dāng)并發(fā)請(qǐng)求數(shù)超過(guò) maxThreads 時(shí),系統(tǒng)還能存儲(chǔ)的請(qǐng)求的隊(duì)列的長(zhǎng)度。默認(rèn)是100。當(dāng)隊(duì)列已經(jīng)滿(mǎn)了的時(shí)候,后續(xù)的請(qǐng)求將獲得一個(gè)“connectin refused”的錯(cuò)誤。
聯(lián)系客服