Apache Tomact5.5 連携のチューニングを行いました。
PB-Lab のApache - Tomcat の連携部分でコネクションキューがタイムアウトせずにたまっていたようです。
# netstat -an | grep 8009
でタイムアウトしていないコネクションが溜まっていました。
早速設定を確認し/opt/java/tomcat5.5/conf/server/xml を修正しました
--------------------------
server.xml
○修正前
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
--------------------------
○修正後
enableLookups="false" redirectPort="8443" acceptCount="20"
connectionTimeout="20000" disableUploadTimeout="true" />
connectionTimeout="21000"
keepAliveTimeout="100"
maxThreads="150"
debug="5"
/>
AJP/1.3 の Connecter に connectionTimeout と keepAliveTimeout を設定してみた。
keepAliveTimeout が設定されていない場合は connectionTimeout と同じ間隔でコネクションを保持してしまうので、それよりも安全な短い時間を設定する。
そもそも危ないのは、connectionTimeout が未設定の場合、0(無限)と動作することが問題だろう。
その他に注意することは、Tomcat 本体のConnectoer(port="8080") の maxThreads を Apache のスレッド MaxClients よりも大きくすることか。
上記設定に変更したところ、jk-8009(AJP/1.3) コネクタで無駄なコネクションが残ることは無くなり、サーバーで固まることは基本的に無くなった。一安心。