zoukankan      html  css  js  c++  java
  • Tomcat--启动慢

    本篇为转载文章 来自:https://www.cnblogs.com/user-sunli/articles/13917035.html

    有时启动Tomcat,发现启动很慢,需要几分钟,这个问题值得重视,所以就去查看日志,发现耗时是session引起随机数问题导致的。Tomcat的Session ID通过SHA1算法计算得到的,计算Session ID的时候必须有1个秘钥,为了提高安全性Tomcat在启动的时候通过随机数生成秘钥。 

    一、环境介绍

    系统版本:CentOS 7.6
    软件版本:Tomcat 8

    二、日志分析

    排查原因日志如下:

    4-Mayr-2017  8:07:49 .623 INFO[localhost-startStop-1]org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of
     SecureRandominstance for session ID generation using [SHA1PRNG] took [55,507] milliseconds.
    4-Mayr-2017  8:07:49 .653 INFO[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectoryDeployment of web appli
    cation directory/application/apache-tomcat-8.0.27/webapps/ROOT has finished in 165,935 ms

    主要原因:
    就是通过随机数生成秘钥的时候卡住了,导致Tomcat启动慢或失败。
    #影响随机数的强度的是生成用的熵,具体含义可以自己度娘 查下,不在这里细说了。

    查看是否有足够的熵来用于产生随机数,可以通过如下命令来查看
    [root@qiuyuetao tools]# cat/proc/sys/kernel/random/entropy_avail
    722

    可以做个实验:

    为了加速/dev/random提供随机数的速度,你可以通过操作设备的外设,让其产生大量的中断(如网络传输数据,按键,移动鼠标,在命令行敲几个不同的命令,俗称聚气。

    cat /dev/random  ##可以消耗能量

    三、处理及优化

    解决方法有3种;
    方法1:使用rngd 软件增大熵池 *****建议使用
    grep  rdrand /proc/cpuinfo #需要cpu支持 
    yum install rng-tools # 安装rngd服务(熵服务,增大熵池)
    systemctl start rngd  # 启动服务

    方法2:Java环境下修改配置文件
    vim $JAVA_HOME/jre/lib/security/java.security
    securerandom.source=file:/dev/random
    改为
    securerandom.source=file:/dev/urandom

     

    方法3:可以通过配置JRE使用非阻塞的Entropy Source:
    vim $TOMCAT_HOME/bin/catalina.sh
    if [[ "$JAVA_OPTS" !=*-Djava.security.egd=* ]]; then
      JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom"
    fi
    ##这个系统属性egd表示熵收集守护进程(entropy gathering daemon)

    Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm 

    Tomcat中session的管理机制  http://www.linuxidc.com/Linux/2016-09/135072.htm

    Linux下使用Xshell查看Tomcat实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm

  • 相关阅读:
    Java异常处理和设计
    一次qps测试实践
    Alternate Task UVA
    Just Another Problem UVA
    Lattice Point or Not UVA
    Play with Floor and Ceil UVA
    Exploring Pyramids UVALive
    Cheerleaders UVA
    Triangle Counting UVA
    Square Numbers UVA
  • 原文地址:https://www.cnblogs.com/Xinenhui/p/14082891.html
Copyright © 2011-2022 走看看