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

阿里云Centos7安装Java环境(Tomcat)

2018-04-09 09:26 267 查看

在本地开发环境,应用正常启动。在CentOS测试环境,应用启动速度也是正常的。但是在阿里云的生产环境,tomcat启动超级慢,并且在最终打印出来以下内容:

org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [152,149] milliseconds.

152秒,这可以就是2分钟啊。并且如果多次启动,可能需要等待更久,有几次上线只是在启动时等待了5分钟多。经过百度,发现是Tomcat 7/8使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom类产生安全随机类SecureRandom的实例作为会话ID时,由于堵塞,造成时间上的消耗。解决方案如下,由于第一种需要修改catalina.sh,在生产环境没有尝试。而是采用的第二种的方式。
有两种解决办法:
1)在Tomcat环境中解决
可以通过配置JRE使用非阻塞的Entropy Source。
在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。
加入后再启动Tomcat,整个启动耗时下降到Server startup in 2912 ms。
2)【已验证】在JVM环境中解决
打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:
securerandom.source=file:/dev/urandom
替换成
securerandom.source=file:/dev/./urandom

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: