1. 程式人生 > >tomcat高併發配置調優

tomcat高併發配置調優

最近部署的tomcat,裡面放了一個apk提供給測試人員測試,而有一天壓測的時候,他們一致反饋下載不了,結果檢視日誌才發現如下錯誤:

INFO: Maximum number of threads (200) created for connector with address null and port 8091

才驚醒這個tomcat根本知識解壓就使用的,配置都沒動過,肯定不能支援高併發了。所以這裡給出一個高併發的配置,當然百度一下也會發現很多類似的配置文章,其他的就不去管吧,反正這歌配置是本人親測,特別是壓力測試下是沒問題的;
<Executor name="tomcatThreadPool"        # 配置TOMCAT共享執行緒池,NAME為名稱 
          namePrefix="HTTP-8088-exec-"    # 執行緒的名字字首,用於標記執行緒名稱
          prestartminSpareThreads="true"  # executor啟動時,是否開啟最小的執行緒數
          maxThreads="5000"               # 允許的最大執行緒池裡的執行緒數量,預設是200,大的併發應該設定的高一些,這裡設定可以支援到5000併發
          maxQueueSize="100"              # 任務佇列上限
          minSpareThreads="50"            # 最小的保持活躍的執行緒數量,預設是25.這個要根據負載情況自行調整了。太小了就影響反應速度,太大了白白佔用資源
          maxIdleTime="10000"             # 超過最小活躍執行緒數量的執行緒,如果空閒時間超過這個設定後,會被關別。預設是1分鐘。
 />
<Connector port="8088" protocol="org.apache.coyote.http11.Http11NioProtocol"
   connectionTimeout="5000" redirectPort="443" proxyPort="443" executor="tomcatThreadPool"  # 採用上面的共享執行緒池
   URIEncoding="UTF-8"/>

這裡本人的最大執行緒數是5000,當然先上壓測的時候併發4000是完全沒壓力的,當時伺服器的資源20%都沒用到,所以這一個配置完全足夠實現5000高併發。