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

tomcat8启动慢的问题

2018-03-15 11:15 274 查看

环境:

jdk8
tomcat 8

原因:

通过查看日志发现

SessionIdGeneratorBase - Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [486,784] milliseconds.
 生成sessionID用掉8分钟

解决方法:

第一种方法:修改Java
  打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:
  securerandom.source=file:/dev/urandom (或者 securerandom.source=file:/dev/random)
  替换成
  securerandom.source=file:/dev/./urandom
  (这里加粗的u一定要带上)
  修改后结果:Server startup in 1904 ms
第二种方法:修改/apache-tomcat-8.5.16/bin/catalina.sh 
  在catalina.sh中的 “#!/bin/sh” 下面添加如下代码:
if [[ "$JAVA_OPTS" != *-Djava.security.egd=* ]]; then
    JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
fi
  修改后的结果: Server startup in 1899 ms
第三种方法:添加环境变量
在/etc/profile里添加环境变量:
    export JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
/dev/random会根据噪音产生随机数,如果噪音不够它就会阻塞。Linux是通过I/O,键盘终端、内存使用量、CPU利用率等方式来收集噪音的,如果噪音不够生成随机数的时候就会被阻塞
 
生产服务器的熵池为130
#cat /proc/sys/kernel/random/entropy_avail
130
至于在测试环境为什么没有复现是因为测试环境的熵池大一些 848
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: