CentOS6 tomcat7の起動が遅い問題対策。

「メモ」

1.tomcat7 ipv6無効及びrandamドライバー変更

 1) /etc/sysconfig/tomcat7に以下を追加。
  JAVA_OPTS=”-Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom”

 ※-Djava.net.preferIPv4Stack=trueは起動時のservlet50xエラー回避
   -Djava.security.egd=file:/dev/./urandom”は起動時に数十秒かかってしまう場合がある問題の回避

  起動中に乱数生成で、/dev/randomが使われると
 「エントロピープールが空の場合、/dev/random から読み出そうとするとブロックされ、環境ノイズの収集がなされるまで待たされる。」
 wikiより。http://ja.wikipedia.org/wiki//dev/random

 で、代わりにノンブロッキングのurandomを使う。
 http://wiki.apache.org/tomcat/HowTo/FasterStartUp
 

2.web.xmlチューニング

 1) /project/sysk/WEB-INF/web.xmlのweb-appの後にmetadata-complete=”true”を追加。

<web-app metadata-complete=”true”
        xmlns=”http://java.sun.com/xml/ns/j2ee”
        xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
        xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2e
e/web-app_2_4.xsd”
        version=”2.4″>

 ※WEB-INF/lib のアノテーションをVMがスキャンするのを無効にする。

 =============================
 1.ipv6そのものを無効にしたい時

 1) /etc/sysconfig/networkに以下を追加。
  NETWORKING_IPV6=no
 2) /etc/modprobe.d/disable-ipv6.confファイルを作成して以下を書く。
  options ipv6 disable=1
 3) ip6tablesサービスを起動している場合。
  chkconfig ip6tables off
 4) リブート
 ==============================