由于SecureRandom,Tomcat 7.0.57上的启动速度很慢

2022-09-01 05:21:08

我在CentOS 6.6 32位和openJDK7上使用Tomcat 7.0.57。当我在我的服务器(生产环境)上启动14个不同的Tomcat实例时,其中许多实例需要花费太多时间才能启动。

这是启动日志的一部分,它告诉我一直在哪里

Jan 28, 2015 2:49:41 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [199,620] milliseconds.

此问题的最佳实践/解决方案是什么?

谢谢!


答案 1

我遇到了同样的问题,雄猫太慢而无法开始。我关注了DigitalOcean上的这篇文章,并安装了haberged而不是使用urandom。

haveged是一个不会损害安全性的解决方案。

haveged允许根据处理器上代码执行时间的变化生成随机性。由于一段代码几乎不可能花费相同的确切时间来执行,即使在相同硬件上的相同环境中也是如此,因此运行单个或多个程序的时间应该适合于为随机源设定种子。在重复执行循环后,使用处理器时间戳计数器(TSC)的差异,将系统的随机源(通常是/dev/random)种子化

如何安装哈维格德

按照本文中的步骤操作。https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged

我已经把它贴在这里


答案 2

安全随机调用可能被阻塞,因为没有足够的熵在 /dev/random 中提供它们。

如果您有该行

securerandom.source=file:/dev/random

在 /jre/lib/security/java.security 中,将其更改为 urandom 可能会改善一些情况(尽管这可能已经是默认设置)。

或者,这里有一些关于如何喂养游泳池的建议

https://security.stackexchange.com/questions/89/feeding-dev-random-entropy-pool


推荐