您的位置:首页 > 运维架构 > Tomcat

centos7.2中tomcat启动很慢的问题

2018-02-09 13:00 561 查看
有几台服务器,一台是centos6.5的,一台是centos7.2的,同样的tomcat配置,同样的jdk,同样的war包,centos6.5上启动项目只要十几秒,centos7.2启动却要两百秒,相差十多倍。苦思冥想,没找到原因,只剩机器本身配置问题.

centos6.5的是16G内存的

centos7.2是8G内存的

但各自tomcat分配的内存是够的,所以不可能是机器内存的问题,对比tomcat启动日志如下 :

centos6.5上如下:



centos7.2上如下:



对比日志发现多了一个过程

INFO  [org.apache.juli.logging.DirectJDKLog:183] o.a.c.util.SessionIdGeneratorBase - Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [203,339] milliseconds


这个过程耗时203秒,这个问题在centos6.5那台机器上不存在,在网上搜得解决方法,在tomcat下/bin/catalina.sh中的JAVA_OPTS上增加

-Djava.security.egd=file:/dev/./urandom


重新启动,项目启动完成时间13秒。

在这篇文章中介绍了两种方法 http://knight-black-bob.iteye.com/blog/2375133 ,亲测可行。

修改jdk下的文件$JAVA_PATH/jre/lib/security/java.security

securerandom.source=file:/dev/urandom

替换成

securerandom.source=file:/dev/./urandom

此方法也可行。

两相比较,除了系统本身的原因,没有任何配置不同,所以极有可能是centos版本不同导致的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SecureRandom tomcat jdk