[tomcat調優]Tomcat7中maxThreads等於-1問題
阿新 • • 發佈:2019-02-07
今天給伺服器上的Tomcat進行調優,配置如下:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="5" />
<Connector executor="tomcatThreadPool" port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000" redirectPort ="8443" />
將執行緒池可以容納的最大執行緒數設為500,最小不活躍執行緒數設為5
結果如下:
最小執行緒數設定成功,最大執行緒數為-1;之後將maxThreads改成了預設值200,1000等等,都是顯示-1;
難道這個屬性失效了嗎?
經過測試,這個屬性是生效的,將其設為1後,Current thread count(當前執行緒數)是不會超過1的。
但為什麼會顯示-1呢? 查了tomcat7文件的maxThreads屬性:
最後一句話“Note that if an executor is configured any value set for this attribute will be recorded correctly but it will be reported (e.g. via JMX) as -1 to make clear that it is not used.”就說到了這個情況,意思大概是:
如果配置了一個Executor,則該屬性的任何值集將被正確記錄,但是它將被顯示為-1
折騰了一個多小時,終於真相大白。