2014-01-23 67 views
0

我曾與下列配置的Tomcat實例中的Tomcat沒有履行maxThreads配置catalina.properties和活動核心不會超越200

catalina.properties線程

server.service-Catalina.executor-tomcatThreadPool.maxThreads=300 server.service-Catalina.executor-tomcatThreadPool.minSpareThreads=300

server.service-Catalina.connector.http1.1.executor=tomcatThreadPool server.service-Catalina.connector.http1.1.protocol=HTTP/1.1 server.service-Catalina.connector.http1.1.connectionTimeout=20000 server.service-Catalina.connector.http1.1.acceptCount=300 server.service-Catalina.connector.http1.1.maxKeepAliveRequests=15

我想要300個線程來爲請求提供服務。

有了上面的配置,tomcat啓動了300個線程,我可以看到JConsole 300工作線程正在運行。但是當我用300個併發請求加載時,activeCount一直持續到200. 爲什麼tomcat不能有超過200個活動線程(並行線程)處理我的請求?

+0

你有沒有在你面前的任何網絡服務器的Java應用程序,如Apache或Ngix? – Augusto

回答

0

通過一些試驗發現,它不足以增加Executors線程數(maxThreads for Executor元素),但也需要增加連接器線程數(maxThreads for Connector元素)。這種行爲實際上是違背了什麼tomcat的documentation

「在一個Executor元素名稱的參考。如果這個屬性被設置,並指定遺囑執行人存在,連接器將使用執行者,和所有其他線程屬性將被忽略,請注意,如果未爲連接器指定共享執行程序,則連接程序將使用私有的內部執行程序來提供線程池。「