我有问题,Tomcat 7在启动时非常慢.我在日志文件中找到了这个:
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [12,367] milliseconds.
Run Code Online (Sandbox Code Playgroud)
安全性很重要,当然,但不是在我的开发机器上.我完全可以使用标准的快速随机数发生器.所以我不需要这个非常慢的SecureRandom实现.
问题是:如何禁用它?搜索解决方案,但只找到一些关于randomClass
可以设置为的属性的弃用信息java.util.Random
.我还发现这个属性secureRandomClass
现在似乎在Tomcat 7中被命名了.我试图将它设置为java.util.Random
但是这会失败,因为Tomcat 7将对象强制转换为java.util.SecureRandom(并且还记录了指定的类必须扩展java. util.SecureRandom,因此不再可能使用java.util.Random.)
那么我怎样才能摆脱这个非常慢的随机数生成器启动,以便我的开发tomcat尽可能快地启动/重启?
lev*_*vsa 13
根据TomCat Wiki,您可以使用非阻塞熵源:
"有一种方法可以通过设置以下系统属性来配置JRE以使用非阻塞熵源:-Djava.security.egd=file:/dev/./urandom
"
小智 6
您可能需要在服务器上安装Haveged。
Tomcat 在启动时使用SecureRandom生成安全ID,而SecureRandom使用/ dev / random或/ dev / urandom生成随机数。
在某些无头linux环境中,/ dev / random熵池可能产生低质量的随机性,并且对生成随机数的响应非常慢。
有一篇很好的文章介绍了Haveged如何解决此问题。
您可能需要修补 Tomcat。
尽管作为一种黑客,您总是可以尝试使用包装标准 java.util.Random 实例的东西来扩展 java.util.SecureRandom......这至少可以解决强制转换问题。
另一种想法......减速可能是由于熵池耗尽所致?您可能想尝试将更多的熵放入池中,这可能会使其运行得非常快。
归档时间: |
|
查看次数: |
13305 次 |
最近记录: |