1. 程式人生 > >[tomcat調優]Tomcat7中maxThreads等於-1問題

[tomcat調優]Tomcat7中maxThreads等於-1問題

今天給伺服器上的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

折騰了一個多小時,終於真相大白。