Tomcat启动非常慢的原因:
29-Apr-2019 11:35:29.874 INFO [www.demo.com-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [500,022] milliseconds.
29-Apr-2019 11:35:29.908 WARNING [main] org.apache.catalina.mapper.MapperListener.findDefaultHost Unknown default host [localhost] for service [StandardService[Catalina]]
29-Apr-2019 11:35:29.910 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
29-Apr-2019 11:35:29.918 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
29-Apr-2019 11:35:29.921 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 500407 ms
启动用了: 500407 ms, 是巨慢。 因为服务在启动是调用createSecureRandom随机生成一个密钥,这个创建过程导致的慢,现在需要提高他的创建速度。 我们需要调大系统的熵池。 查看: cat /proc/sys/kernel/random/entropy_avail 值只有 25 ,然后启动 systemctl start rngd 服务,再次查看: cat /proc/sys/kernel/random/entropy_avail 发现变成 3104。 如果rngd没有安装可以安装后再启动。 一般系统默认都有安装的。 停掉原来的tomcat从新启动发现速度很快。
设rngd 服务开机启动: chkconfig rngd on
01-May-2019 11:28:01.606 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
01-May-2019 11:28:01.616 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
01-May-2019 11:28:01.619 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 323 ms