WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of Secure...

编译安装tomcat-native和tomcat-deamon以后,发现toomcat启动很慢,好久才有响应。以下日志供参考:

11-Sep-2017 12:19:28.102 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0/webapps/ROOT]
11-Sep-2017 12:19:28.667 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
11-Sep-2017 12:20:34.870 WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [66,193] milliseconds.
11-Sep-2017 12:20:34.917 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0/webapps/ROOT] has finished in [66,815] ms
11-Sep-2017 12:20:34.918 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0/webapps/host-manager]
11-Sep-2017 12:20:35.004 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
11-Sep-2017 12:20:35.013 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0/webapps/host-manager] has finished in [96] ms
11-Sep-2017 12:20:35.014 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0/webapps/manager]
11-Sep-2017 12:20:35.062 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
11-Sep-2017 12:20:35.066 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0/webapps/manager] has finished in [53] ms
11-Sep-2017 12:20:35.074 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
11-Sep-2017 12:20:35.105 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
11-Sep-2017 12:20:35.113 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 67067 ms

tomcat启动耗时67067ms折合67秒,刚刚安装的干净tomcat,显然不对劲。

有一条日志引起了我的注意:

11-Sep-2017 12:20:34.870 WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [66,193] milliseconds.

显然tomcat执行到这里时出问题了,google了一下:"tomcat startup take long time SecureRandom",经过搜索,发现了一个解决方法

Slow startup on Tomcat 7.0.57 because of SecureRandom

 问题缘由:当没有足够的entropy反馈给/dev/random时调用securerandom的时候可能引起阻塞。

解决方法1:

修改 /opt/jdk1.8/jre/jre/lib/security/java.security

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

解决方法2:安装haveged

apt-get install haveged
vim /etc/default/haveged #编辑配置文件,输入下面一行
DAEMON_ARGS="-w 1024"

#刷新配置 update-rc.d haveged defaults

笔者采用了第二种方法,ubuntu16 amd64,64位系统,其他linux系统参考How to Setup Additional Entropy for Cloud Servers Using Haveged

同以上操作顺利解决问题。

更新后重启tomcat日志如下:

[/opt/apache-tomcat-9.0/webapps/ROOT]
11-Sep-2017 12:28:00.324 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
11-Sep-2017 12:28:00.374 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0/webapps/ROOT] has finished in [567] ms
11-Sep-2017 12:28:00.375 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0/webapps/host-manager]
11-Sep-2017 12:28:00.448 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
11-Sep-2017 12:28:00.456 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0/webapps/host-manager] has finished in [80] ms
11-Sep-2017 12:28:00.456 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0/webapps/manager]
11-Sep-2017 12:28:00.502 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
11-Sep-2017 12:28:00.504 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0/webapps/manager] has finished in [48] ms
11-Sep-2017 12:28:00.514 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
11-Sep-2017 12:28:00.545 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
11-Sep-2017 12:28:00.565 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 803 ms

参考:

Tomcat takes too much time to start - Java SecureRandom

How to Setup Additional Entropy for Cloud Servers Using Haveged

Slow startup on Tomcat 7.0.57 because of SecureRandom

Tomcat 8熵池阻塞变慢详解

转载于:https://www.cnblogs.com/passedbylove/p/7504476.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: org.apache.catalina.startup.catalina.start是Tomcat服务器启动时的一个类。它是Tomcat启动的入口点,负责加载和初始化Tomcat的各个组件,包括连接器、容器、Web应用程序等。 ### 回答2: org.apache.catalina.startup.catalina.start 是 Apache Tomcat Web 服务器的启动类。Apache Tomcat 是一个开源的、轻量级的、灵活的、用于Java Web开发的Web服务器。它是Java Servlet、JavaServer Pages、Java Expression Language和Java WebSocket的参考实现。该启动类是Tomcat服务器启动时的入口点。 当启动Tomcat服务器时,会首先执行该启动类中的main方法。在该方法中,会完成一系列的初始化操作,包括读取配置文件、创建必要的组件、加载Web应用程序等。 在该启动类中,有许多重要的方法,如start方法、await方法等。start方法用于启动Tomcat服务器,其中会调用一系列的初始化方法,如createServer方法、initialize方法等。await方法用于阻塞当前线程,等待服务器停止命令的到来。 该类还包含一些静态私有方法,用于执行一些具体的启动过程细节,如configureStart方法用于配置服务器的启动参数,createCatalina配置方法用于创建Catalina对象等。 通过阅读org.apache.catalina.startup.catalina.start类的源码,可以更深入地了解Tomcat服务器的启动过程和相关的配置细节。对于开发人员来说,了解这些细节可以帮助他们更好地理解和使用Tomcat服务器。 总之,org.apache.catalina.startup.catalina.start是Tomcat服务器的启动类,负责完成服务器的初始化和启动工作,对于研究和使用Tomcat服务器的开发人员来说,了解这个类的功能和作用非常重要。 ### 回答3: org.apache.catalina.startup.catalina.start是Apache Tomcat中的一个类。 Apache Tomcat是一个开源的Java Servlet容器,用于运行Java Servlet和JSP(JavaServer Pages)的Web应用程序。org.apache.catalina.startup.catalina.start是Tomcat的启动类之一,在Tomcat启动时调用。 该类的主要作用是初始化Tomcat服务器的配置信息,创建服务器并对其进行配置,最后启动服务器。它会加载Tomcat的配置文件,包括server.xml、context.xml等,通过解析这些文件来获取服务器的配置信息。 在启动过程中,org.apache.catalina.startup.catalina.start会初始化Tomcat的Connector,用于处理客户端的请求。它会根据配置文件的设置创建并配置不同的Connector,例如HTTP和HTTPS Connector,用于监听不同的端口。 启动过程中,还会对Tomcat的各项服务和组件进行初始化和配置,例如创建和配置线程池、连接池、Session Manager等。该类还负责加载Web应用程序,并将其部署到Tomcat服务器中。 最后,org.apache.catalina.startup.catalina.start会调用servers的start方法,启动Tomcat服务器。在服务器启动后,它会监听客户端的请求,并将请求分发到相应的Web应用程序进行处理。 总之,org.apache.catalina.startup.catalina.start是Apache Tomcat中负责启动Tomcat服务器的一个重要类,它通过加载配置文件和初始化各项服务和组件,最终启动Tomcat服务器,并监听客户端的请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值