环境参数
- CentOS7
- JDK1.8
- MYSQL8
- 应用是Spring boot框架的(内嵌式tomcat)jar文件
问题
通过命令:nohup java -jar XXXX.jar & 或其他方式启动项目后,通过浏览器访问网站响应十分的缓慢,网页图片和css等静态资源加载的十分缓慢(网站登录更是需要好几分钟才能完全加载完毕)。
分析
后在Google浏览器搜索了一下(已翻墙),搜索需用英文,类似问题看来不是个例呀,甚至JDK bug列表汇中就有相似的bug,如JDK-6521844 : SecureRandom hangs on Linux Systems,但这些bug都标记为fixed。但明显没有完全fix掉啊。然后继续找,原来
Avoiding JVM Delays Caused by Random Number Generation
How do I make Tomcat startup faster?
正好记录了这个随机数生成慢的原因和解决方案。
原因:Java随机数生成依赖熵源(Entropy Source),默认的阻塞型的 /dev/random熵源可能导致阻塞,而换一个非阻塞的 /dev/urandom的熵源就可以了。
解决:
进入你的JAVA_HOME的jre目录下找到并vim编辑这个文件:
$JAVA_HOME/jre/lib/security/java.security
找到以下这一行
securerandom.source=file:/dev/random
改之前:
securerandom.source=file:/dev/random
改之后
securerandom.source=file:/dev/urandom
然后保存修改就OK了!