zoukankan      html  css  js  c++  java
  • tomcat启动过慢,日志报WARNING: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [246,221] milliseconds.

    日志如下:

    [2019-01-25 15:13:53,248]初始化系统缓存完毕!
    [2019-01-25 15:13:53,248]系统监听器初始化成功!
    Jan 25, 2019 3:17:59 PM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
    WARNING: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [246,221] milliseconds.
    [2019-01-25 15:17:59,580]FrameworkServlet 'managermvc': initialization started
    [2019-01-25 15:17:59,582]Refreshing WebApplicationContext for namespace 'managermvc-servlet': startup date [Fri Jan 25 15:17:59 CST 2019]; parent: Root WebApplicationContext

    明显看到,第2行和第3行相差了4分钟,卡在这里一动不动,其实程序没死,只不过在干其他的事,看不到而已。

    具体干的事情就是,在生成安全随机数。

    Tomcat 7/8/9 都使用 org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 类产生安全随机类 SecureRandom 的实例作为会话 ID。

    Tomcat 使用 SHA1PRNG 算法是基于 SHA-1 算法实现且保密性较强的伪随机数生成器。这四分钟应该都是在执行这块了。

    copy一下大佬的解决办法:

    方案有3个

    方案1:通过rng-tools自动补充熵池(推荐)

    复制代码
    yum install rng-tools      #安装rngd熵服务
    
    systemctl start rngd       #启动服务
    cp /usr/lib/systemd/system/rngd.service /etc/systemd/system cd /etc/systemd/system/

    vim rngd.service
    ExecStart=/sbin/rngd -f 改为 ExecStart=/sbin/rngd -f -r /dev/urandom
    systemctl daemon-reload   #重新载入服务 

    systemctl restart rngd #重启服务
    复制代码

    重启tomcat,查看日志,启动时间1271 ms

    15-Mar-2018 17:28:24.092 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1271 ms

    方案2:修改jvm参数

    通过修改JRE中的java.security文件securerandom.source=file:/dev/urandom

    重启tomcat,查看日志,启动时间1271 ms

    15-Mar-2018 17:22:27.363 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 84777 ms

    可见启动速度比原来快了一半多,但还是不理想

    方案3:修改tomcat参数

    通过修改Tomcat启动文件-Djava.security.egd=file:/dev/urandom(没尝试过)

    --->大佬博客详细分析<---

  • 相关阅读:
    今天,我们来聊一聊互联网真的有你所期待的那么好吗?来自一个老码农的碎碎念
    新鲜出炉!阿里Java后端面经,已拿offer!
    面试阿里,字节跳动,美团必被问到的红黑树原来这么简单
    凭借着这份Spring面试题,我拿到了阿里,字节跳动美团的offer!
    深度分析:理解Java中的多态机制,一篇直接帮你掌握!
    gdb调试core dump使用
    665. Non-decreasing Array
    netstat命令详解
    ifconfig命令
    #paragma详解
  • 原文地址:https://www.cnblogs.com/xinzhisoft/p/10320242.html
Copyright © 2011-2022 走看看