■ Tomcat のスレッド制御
* server.xml のタグで制御 [1] <Connector>タグ ... maxThreads / minSpareThreads / acceptCount / connectionTimeout [2] <Executor>タグ ... maxThreads / minSpareThreads / maxIdleTime
[1] <Connector>タグ
* クライアントからのリクエストを処理するコネクタの設定maxThreads
* リクエスト処理を行う<Connector>タグで 処理できるリクエスト処理スレッドの最大数を設定 * デフォルト値:200connectionTimeout
* コネクションを受け付けてからコネクタが待ち受ける時間[ミリ秒] * デフォルト値:60000[ミリ秒](1分)
[2] <Executor>タグ
* 設定することで1つのサービス内でスレッドプールを表わすmaxThreads
* activeスレッドの最大個数を設定 * デフォルト値:200maxThreads
* 常時即応できるように待機しているスレッドの最小個数を設定 * デフォルト値:25maxIdleTime
* acitveスレッドの個数がminSpareThreadsを超えている場合に、 アイドル状態のスレッドがシャットダウンするまでの時間[ミリ秒] * デフォルト値:60000[ミリ秒](1分)
■ server.xml
<Service name="Catalina"> <!--The connectors can use a shared executor, you can define one or more named thread pools--> <!-- <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/> --> ... 略 ... <!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" type="RSA" /> </SSLHostConfig> </Connector> -->
使用上の注意
* <Executor>タグは、<Connector>タグの前に設定しなければ、 <Connector>タグに利用されないので注意
参考文献
http://www.atmarkit.co.jp/ait/articles/0711/20/news125.htmlhttp://www.atmarkit.co.jp/ait/articles/0711/20/news125_2.html
http://www.atmarkit.co.jp/ait/articles/0711/20/news125_3.html
http://gakumon.tech/tomcat/server_xml/executor.html
http://www.casleyconsulting.co.jp/blog-engineer/%E3%82%B5%E3%83%BC%E3%83%90%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9/tomcat%E3%81%A7%E6%B5%81%E9%87%8F%E5%88%B6%E5%BE%A1/
チューニング
https://www.ginnokagi.com/2012/03/tomcat-3.htmlhttp://www.atmarkit.co.jp/ait/articles/0708/27/news098_2.html
公式サイト
<Executor>タグhttp://tomcat.apache.org/tomcat-8.0-doc/config/executor.html