我有一个问题,Tomcat 7在启动时非常慢。我在日志文件中找到了这个:
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [12,367] milliseconds.
当然,安全性很重要,但在我的开发机器上不是。我完全可以接受一个标准的快速随机数生成器。所以我不需要这种慢得离谱的SecureRandom实现。
问题是:我如何禁用它?搜索解决方案,但只找到一些有关可以设置为java.util.Random
的randomClass
属性的过时信息。我还发现这个属性现在在Tomcat7中似乎被命名为secureRandomClass
。我试图将其设置为java.util.Random
,但失败了,因为Tomcat7将该对象强制转换为java.util.SecureRandom (而且文档中还规定指定的类必须扩展java.util.SecureRandom,因此不能再使用java.util.Random )。
那么,我如何摆脱这种极其缓慢的随机数生成器启动,以便我的开发tomcat尽可能快地启动/重新启动?
发布于 2011-09-26 20:30:34
您可能需要为Tomcat打补丁。
不过作为一种技巧,你可以尝试用一些包装标准java.util.Random实例的东西来扩展java.util.SecureRandom ......这至少可以解决强制转换问题。
另一个想法..。速度减慢会不会是由于熵池耗尽?您可能想要尝试将更多的熵放入池中,这可能会使它运行得非常快。
发布于 2014-09-09 17:10:49
根据TomCat Wiki的说法,你可以使用非阻塞熵源:
“有一种方法可以通过设置以下系统属性将JRE配置为使用非阻塞熵源:-Djava.security.egd=file:/dev/./urandom
”
发布于 2014-10-18 05:39:50
只需从$JAVA_PATH/jre/lib/security/java.security
文件中找到securerandom.source=...
并将其更改为securerandom.source=file:/dev/./urandom
https://stackoverflow.com/questions/7554831
复制相似问题