調整Tomcat的并發線程數到5000+
1. 調整server.xml的配置
先調整maxThreads的數值,在未調整任何參數之前,默認的并發線程可以達到40。
調整此項后可以達到1800左右。
?
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" maxThreads="32000" />
再試試使用非阻塞的庫。
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" maxThreads="32000" protocol="org.apache.coyote.http11.Http11NioProtocol" />
結果和不使用非阻塞的庫差不多。
?
線程數在2000左右。
2.調整用戶打開的文件數限制
?
ulimit -n 32768
調整后,線程數增加到了5900左右。
?
3.減少緩沖區大小到1024
?
... maxThreads="32000" socket.appReadBufSize="1024" socket.appWriteBufSize="1024" bufferSize="1024" ...
無效果
?
綜合來看,還是達不到10000并發。下次增加內存再試試。
當前的內存配置是1024M。
另外,在server.xml中的參數 acceptCount ,保存的是,當并發請求數超過 maxThreads 時,系統還能存儲的請求的隊列的長度。默認是100。當隊列已經滿了的時候,后續的請求 將獲得一個“connectin refused”的錯誤。
參考:
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
