Tomcat 7+严重依赖SecureRandom导致启动非常慢

本文介绍了解决Tomcat7启动慢的问题,特别是在使用SecureRandom类时导致的长时间延迟。通过配置JRE使用非阻塞的EntropySource,能够显著减少启动时间。

 

 

 

Tomcat 7+严重依赖SecureRandom这个类为它的session id或其它地方取得随机数值,这取决于你的JRE,它有可能在tomcat启动时造成非常大的耗时,比如,在启动tomcat-7.0.26的时候,它耗时近25秒!

INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [24,790] milliseconds.

要解决这个问题,可以通过配置JRE使用非阻塞的Entropy Source,在bin/ catalina.sh中加入这么一行:JAVA_OPTS=" -Djava.security.egd=file:/dev/./urandom"即可。

加入后再启动tomcat,整个启动下降到仅耗时Server startup in 912 ms。

 

 

[2025-03-12 07:49:42,020] 工件 untitled:war exploded: 正在部署工件,请稍候… 12-Mar-2025 19:49:43.593 信息 [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。 12-Mar-2025 19:49:43.909 警告 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[244]毫秒。 12-Mar-2025 19:49:43.918 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到 12-Mar-2025 19:49:43.918 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[/untitled_war_exploded]启动失败 [2025-03-12 07:49:43,949] 工件 untitled:war exploded: 部署工件时出错。请参阅服务器日志了解详细信息。 12-Mar-2025 19:49:51.845 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [E:\cpanwenjian\tomcat10\apache-tomcat-10.1.30\webapps\manager] 12-Mar-2025 19:49:52.224 信息 [Catalina-utility-2] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。 12-Mar-2025 19:49:52.260 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[E:\cpanwenjian\tomcat10\apache-tomcat-10.1.30\webapps\manager]的部署已在[415]毫秒内完成
03-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值